我在开发中使用OOP和jQuery。
我曾经将我当前的对象this
传递给jQuery函数,如下所示:
$(myElement).live('click', this, function(el){
// I can access to my JS object using el.data
});
但是我找不到如何用jQuery函数.queue()
做类似的事情。
有可能吗?
修改
我给出了我想要使用{(1}}:
的上下文.queue()
答案 0 :(得分:2)
“有可能吗?”
没有。 live()
方法是一种事件处理方法,您正在设置事件对象数据。回调中的第一个参数是事件对象。
我不知道this
代表什么,但我觉得你误用了事件数据。
queue()
方法与事件处理无关。您传递一个添加到队列的函数。它的第一个参数将引用一个释放队列的函数。
答案 1 :(得分:1)
您仍然可以访问当前对象。在这里查看我的jsfiddle:http://jsfiddle.net/9upJB/
除此之外,其他人指出的是正确的。 live()
(你应该用btw停止)是一个事件。 queue()
是一种方法,与事件无关。
访问对象时,这将作为回调执行(查看jQuery文档)。
答案 2 :(得分:1)
首先将实例保存为元素数据,并在jquery的队列函数中使用它;
$("#el").data("instance", this);
在函数
中使用之后$("#el").queue(function(){
var instance = $(this).data("instance");
//do whatever you want
});
答案 3 :(得分:0)
您不会通过queue()
函数传递元素,而是在匹配的元素上执行函数。
$('yourelement').queue();