簡體   English   中英

為什么在此代碼中需要setTimeout

[英]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.

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