2012-10-27 70 views
0

我有這段jQuery代碼:如何讓jQuery Load()每次點擊文件時重新加載文件?

$('a.manage-content-link').click(function (e) { 
    var self = $(this), 
     file = self.siblings('input[name="block-type"]').val(); 
    file = file.substring(file.length - 3); 
    self.next(".manage-content-wrap").find(".manage-content").load("file-" + file + ".php?key=" + self.siblings('input[name="key"]').val()); 
    e.preventDefault(); 
}); 

但我認爲,代碼纔剛剛「負荷」,一旦它的點擊。如果第二,第三等點擊發生,我沒有看到代碼重新加載文件。每次點擊事件發生時如何讓jQuery重新加載?謝謝!

回答

1

我懷疑鏈接元素每次載入頁面時都會被替換(即它是加載內容的一部分)。 如果是這種情況,當您替換元素時,即使使用完全相同的ID,綁定到它的事件也會丟失。您可以通過委託處理程序來解決這個問題,以解決運行代碼時不存在的未來元素。

見jQuery的文檔FAQ "Why do my events stop working after an AJAX request? "

$(document).on('click','a.manage-content-link',function (e) { 
    /* your code*/ 
}) 

如果沒有被替換的組件,問題在於其他地方(緩存,臭蟲等)。您需要使用瀏覽器控制檯來查看是否正在創建AJAX請求。

添加一個簡單的日誌記錄功能insode你的處理程序(或警報)會告訴你單擊事件是否也正在執行

相關問題