1
我一直在玩jQuery中的訂閱元素AJAX事件。jQuery:觸發加載數據的元素的本地AJAX事件
我有一個我用來加載AJAX響應的元素。如果有與該程序的當前上下文相關的數據,則僅顯示該元素。
因此,我認爲只要AJAX請求完成並在需要時將其隱藏起來,就會很好,很容易.show()。我想刪除每次發出AJAX請求時都隱式地顯示.show()元素的需要。
在jQuery中有.ajaxSuccess()和.ajaxComplete()。然而,這些將在任何AJAX請求完成/成功時觸發,因此當在頁面的其他部分加載數據時,我的隱藏元素將會顯示.show()。
的解決方案似乎是(每jQuery的API參考。)使用ajaxOptions參數在事件處理函數:
$('.log').ajaxComplete(function(e, xhr, settings) {
if (settings.url == 'ajax/test.html') {
$(this).text('Triggered ajaxComplete handler.');
}
});
我不明白的是用於註冊的事件處理程序的原因所有對特定元素的AJAX請求,除了能夠使用$(this)外。我是否錯過了一些東西,我可以註冊一個針對某個元素的AJAX請求的事件處理程序嗎?
如果不是,是否有任何事件驅動替代使用.url?我要問的原因是我廣泛使用頁面片段來跟蹤頁面狀態,並且每當AJAX請求將數據加載到它時,事件處理程序.show()我的元素就會更容易。
編輯:發佈標題語法。
你可以舉一些你加載數據的地方的例子嗎? – 2010-08-17 01:33:21
我的想法是,你想是這樣的:
這是否有意義,還是我完全錯過了點?
來源
2010-08-17 01:29:08 karim79
是的,這是有道理的,這是一個很難的詞組。我的問題是,我想註冊一個元素的本地AJAX事件處理程序。所以如果我有
,我需要一個非全局事件,當我爲註冊到$('#main')的處理程序執行$('#main')。load('bla.html')時觸發。 – 2010-08-17 01:36:28