如何手动触发 jQuery drag() 函数?像 $(element).trigger('drag');

Posted

技术标签:

【中文标题】如何手动触发 jQuery drag() 函数?像 $(element).trigger(\'drag\');【英文标题】:How to trigger jQuery drag() function manually? like $(element).trigger('drag');如何手动触发 jQuery drag() 函数?像 $(element).trigger('drag'); 【发布时间】:2016-05-29 06:20:04 【问题描述】:

我有一个可拖动的 img 元素。现在我想手动触发drag() 事件,就像我们如何将'click' 事件触发为$(element).trigger('click')。谢谢。

这是我的函数定义

$('#imgToUpload').draggable(
        drag: function(event, ui) 
            if (ui.position.top > 0) 
                ui.position.top = 0;
            
            var maxtop = ui.helper.parent().height() - ui.helper.height();
            if ( ui.position.top < maxtop) 
                ui.position.top = maxtop;
            
            if ( ui.position.left > 0) 
                ui.position.left = 0;
            
            var maxleft = ui.helper.parent().width() - ui.helper.width();
            if ( ui.position.left < maxleft) 
                ui.position.left = maxleft;
            
            ImageCropping.calculateCroppedCoordinates();
        
    );

【问题讨论】:

将您的代码移动到一个单独的函数并调用该函数。这样您就可以在任何地方执行该功能。 你试过$('#imgToUpload').trigger('drag')吗?具体是如何失败的? 可能重复:***.com/questions/13883214/… @Piskvor 我试过 $('#imgToUpload').trigger('drag') 但没有错误也没有任何操作。 @PimBrouwers 我也看到了那个不能解决我的问题的问题。 【参考方案1】:

这里是 jquery ui 插件

https://github.com/jquery/jquery-ui/blob/9e8e339648901899827a58e5bf919f7dda03b88e/tests/jquery.simulate.js

将其包含在页面上,然后简单地使用

$("#myElement").simulate('drag');

【讨论】:

以上是关于如何手动触发 jQuery drag() 函数?像 $(element).trigger('drag');的主要内容,如果未能解决你的问题,请参考以下文章

jquery.event.drag怎么用

如何手动触发点击输入框

drop和drag容器Js或Jquery时如何替换

jQuery UI 拖动(Draggable) - 事件

如何使用 jQuery 同步运行事件触发器及其绑定方法?

在可拖动的 JQuery UI 上手动触发“堆栈”选项