.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 令人不快的 Draggable, Resizable 交互