【发布时间】:2014-03-03 17:43:29
【问题描述】:
如果我有一个可拖动的对象并具有启动、拖动、停止功能,我将如何触发它们?
我认为会导致问题的问题是传递给函数的参数。
我不确定是否有一种简单的方法可以做到这一点,是否可以使用某种模拟,或者我是否应该创建一个自定义对象,将其传递到 e 和 ui 函数属性。
我会写代码,但它很简单:
代码:
var $a = $("<div />").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
所有这些都有作用域和 this 之类的东西,但由于它正确地附加到调用点击的东西上,所以只调用函数而不引用手头的对象。
查看函数后,我应该能够创建对象以传递给触发器 OR 函数,就像我在上面的语句中触发它一样。
【问题讨论】:
-
和你之前的问题有什么不同:stackoverflow.com/questions/22152604/…???
-
你的目标是什么?你想用触发器完成什么?也许一个小提琴展示你的后会有所帮助。
-
嗯,我在想的是触发器将参数应用于被调用的函数。这很好,但我不确定如何正确创建 E 和 UI 对象以将它们传递给参数。当然,对我来说,由于我没有使用所有这些,我可以通过阅读并找出函数本身使用哪些值来挑选对象中的值。
-
不,这对我不起作用,部分原因是我没有定义正确的属性,其他原因可能是因为范围。我不认为函数存在范围问题(因为那将是糟糕的编程)
-
将您的代码放入其中一个sitepoint.com/7-code-playgrounds 以便更好地检查。
标签: javascript jquery jquery-ui