![](/img/trans.png)
[英]All javascript from ajax.aspnetcdn.com/ajax/ broken? Breaking all external refs? Since Friday?
[英]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.