在特定的DOM元素上订阅.load()的'complete'事件?

时间:2010-04-30 22:09:56

标签: jquery ajax

我已经使用.live()和.bind('ajaxComplete')来完成某些相关的任务,但我发现自己想要能够监听将要调用的特定DOM元素的“完整”事件jQuery的.load()在不同的时间。

在这种情况下,我不想全局监听所有完整事件(除非有人可以告诉我如何从'ajaxComplete'返回的事件对象中获取正确的目标)。我希望能够做到这样的事情:

$('.selector').load('url.php',{data:data},function(){
   // LOCAL complete function
});

然后在其他地方,只要ajax调用触发并完成,就会附加一个处理程序来监听并执行其他一些代码:

$('.selector').bind('complete',function(){ ... });

我知道我可以使用我上面指出的“LOCAL完整函数”来附加一些功能,但我希望能够从我的代码中的其他地方绑定到完整的事件 - 就像我对其他人一样诸如“点击”之类的事件。

有没有办法做到这一点?或者我必须始终在load()方法的上下文中使用“完整”事件吗?

2 个答案:

答案 0 :(得分:2)

只需在本地完整回调中触发完整事件:

$('.selector').load('url.php',{data:data},function(){
   $(this).trigger('complete');
   // Local handling of the complete event.
});

$('.selector').bind('complete',function(){ ... });

答案 1 :(得分:0)

您的示例非常接近,请参阅jQuery上的.load()文档。 http://api.jquery.com/load/

$('.selector').load('url.php',function() {
    //Complete function
});