你将如何使用Trigger来触发jquery draggable start,drag,stop events?

如果我有一个可拖动的对象并具有开始,拖动,停止function,我将如何触发它们?

我认为会导致问题的问题是传递给函数的参数。

我不确定是否有一种简单的方法可以做到这一点,如果有某种模拟可以使用,或者我应该创建一个自定义对象,其中将传递到eui函数属性。

我会写代码,但它很简单:

码:

var $a = $("
").append("Test Text").appendTo("body").draggable({ start: function(e,ui){/*...*/}, drag: function (e,ui){/*...*/}, stop: function (e,ui){/*...*/} });

我想调用这些函数,最初我在考虑:

 $a.draggable("option", "start")(); $a.draggable("option", "drag")(); $a.draggable("option", "stop")(); 

我刚刚做了一个快速的代码遍历,看看哪些参数在哪里使用。

 start: ui.position.top|left drag: ui.position.top|left stop: ui.position.top|left, eventArgs.ClientX, eventArgs.ClientY, eventArgs.target 

所有这些都有像scope这样的东西,但是因为它被正确地附加到调用点击的东西上会有所不同,然后调用函数而不引用手头的对象。

在查看函数之后,我应该能够创建对象以传递到触发器OR函数,因为我在上面的语句中触发了它。

所以起初,这个想法是Trigger。 它将调用与监听器关联的事件。

我被告知的第二个选择是适用。 在进行内联js应用时,需要有一个范围….因为在arb中调用它时范围是错误的。 代码行。 这不会引用正在移动的文本框,而是执行它的函数容器。

我首先构建一个使用的args列表,正如您在上面看到的那样,只是应用了可拖动对象的范围。

 var s = [null,{position:{top:0,left:0}}], d = [null,{}position:{top:0,left:0}], sto = [{ClientX:0, ClientY:0, target:""},{]] $("#my_item").draggable("option", "start").apply($("#my_item"), s); $("#my_item").draggable("option", "drag").apply($("#my_item"), d); $("#my_item").draggable("option", "stop").apply($("#my_item"), sto); 

这个答案确实有效,因为它传递的是正确的范围和所需的所有数据。 我不确定是否有任何我不知道的隐藏function等。