2010-04-30 32 views
2

我已經使用.live()和.bind('ajaxComplete')來完成某些相關任務,但是我發現自己希望能夠偵聽特定DOM元素的'complete'事件,該元素將調用jQuery .load()在不同的時間。訂閱特定DOM元素上.load()的'complete'事件?

在這種情況下,我不想全局偵聽所有完整的事件(除非有人可以告訴我如何從'ajaxComplete'返回的事件對象中獲取正確的目標)。我希望能夠做這樣的事情:

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

,然後在其他地方,附加處理程序以偵聽,並執行一些其他代碼每當Ajax調用火災完成:

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

我我知道我可以使用上面指出的「LOCAL完整函數」來附加某些功能,但我希望能夠從代碼中的其他位置綁定到完整的事件 - 就像我對其他事件(如'點擊」。

有沒有辦法做到這一點?或者我必須總是在load()方法的上下文中使用'complete'事件嗎?

回答

2

只是觸發complete事件在當地完成回調:

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

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

謝謝,這正是我需要!和這樣一個不錯的簡單解決方案 – 2010-05-01 03:43:30

0

您已經接近您的示例,請參閱jQuery中的.load()文檔。 http://api.jquery.com/load/

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

?根據文檔,load()方法採用可選的數據對象參數。 .load(url,[data],[complete(responseText,textStatus,XMLHttpRequest)]) 編輯:對不起,如果問題不明確,編輯上面謝謝 – 2010-04-30 22:25:59