![](/img/trans.png)
[英]Why do I need to have anonymous function in the setTimeout for this code to work?
[英]Why do I need setTimeout in this code
$(document).on('click', '#JS_btn1', function(e) {
var self = $(this);
setTimeout(function(){
self.parent('div').html('<a href="javascript:void(0);" class="btn_ok" id="JS_btn2">OK</a>');
});
})
該代碼顯示在完成偵聽器事件之前,已將#JS_btn1替換為#JS_btn2。 現在的問題是,為什么我需要在IE7 / 8中使用setTimeout來防止錯誤?
IE 7/8最有可能持有對要替換的DOM節點的引用,然后嘗試檢索nodeName。 由於節點已從函數中刪除,並且已從DOM中刪除,因此IE會引發錯誤。 調用setTimeout()允許調用者在替換節點之前釋放該節點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.