簡體   English   中英

在AJAX刷新上,所有JavaScript事件都中斷了

[英]On AJAX refresh all JavaScript events are breaking

當用戶單擊過濾器鏈接時,我正在執行AJAX調用以替換頁面標題和頁腳上方的所有內容。

問題在於,在AJAX事件之后,綁定到各種DOM元素的所有JavaScript事件都會中斷。 這是有道理的,因為它們被綁定在低得多的模塊級別示例中

$(".innerDiv").on("click",function(){doSomething();}

並且通過替換父容器的內容,這些事件將不再綁定。

解決此問題的正確方法是什么? 我可以將事件偵聽器添加到更高的級別,例如

$(document).on("click",".innerDiv",function(){doSomething();}

但這將具有相同的效率低下和問題,jQuery中的live()函數已被棄用。

我發現建議的另一種解決方案是在AJAX調用之后重新綁定事件。 問題是這是我正在處理的一個相當復雜的頁面,它包含許多JavaScript模塊,每個模塊都有自己的綁定。 如何跟蹤綁定的每個事件? 有沒有辦法從jQuery中訪問此信息? 我應該維護所有綁定有事件的元素的數據結構嗎?

另外,在發出AJAX請求之前,我是否需要使用“ off()”函數取消綁定事件?

謝謝你的幫助

在JQuery中可以使用beforeSend http://api.jquery.com/jQuery.ajax/解除綁定事件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM