.draggable 的 Jquery .trigger('stop') 方法

Posted

技术标签:

【中文标题】.draggable 的 Jquery .trigger(\'stop\') 方法【英文标题】:Jquery .trigger('stop') method for .draggable.draggable 的 Jquery .trigger('stop') 方法 【发布时间】:2011-04-05 04:16:08 【问题描述】:
$('#element').draggable (
    stop: function () 
        alert ('stopped');
        //do some action here
    
).trigger('stop');

什么都没有发生,认为#element 现在是可拖动的,并且事件在拖动完成后会执行。我试过.triggerHandle'dragstop' 作为事件类型,没有运气

【问题讨论】:

【参考方案1】:

使用它来触发它:

.trigger('dragstop')

如果您希望它完全像正常事件一样运行,也可以使用 .bind('dragstop', function) 来附加它,启动选项的行为会略有不同。

【讨论】:

@selytch - 你试过使用 .bind() 吗?回调的处理方式与此处调用的直接绑定略有不同。 谢谢,这行得通!我没有意识到 .bind 的工作方式不同。这有记录吗? (可能是的......) @selytch - 不,根本没有很好的文档记录,只是您在查看 jQuery UI 源代码时注意到的东西,我同意它需要在某个地方更好地注明。【参考方案2】:

我知道这是一个老问题,但现在可以通过使用jQuery simulate plugin 来触发jquery ui 的实际拖动事件而不是dragstart 和dragstop。

这是我使用的代码,因为我需要访问可调整大小对象的捕捉元素(数据只能在拖动停止时访问)

$(this).resizable(
    handles: 'e',
    stop: function (e, ui) 
        var resizable = ui.element;             
        resizable.simulate("mousedown", clientX: e.clientX, clientY: e.clientY);
        resizable.simulate("mousemove", clientX: e.clientX + 10, clientY: e.clientY + 10);
        resizable.simulate("mouseup", clientX: e.clientX, clientY: e.clientY);
    
);

【讨论】:

以上是关于.draggable 的 Jquery .trigger('stop') 方法的主要内容,如果未能解决你的问题,请参考以下文章

获取 JQuery ui.draggable 的属性

jQuery 令人不快的 Draggable, Resizable 交互

jQuery(...)。draggable不是一个函数

jQuery UI-Draggable 参数集合

jquery如何通过'draggable'和'droppable'来排序't项目“互相吃”?

jQuery UI 拖动(Draggable) - Handles和Cancel