$(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来防止错误?
答案 0 :(得分:1)
最有可能的是,IE 7/8持有对您要替换的DOM节点的引用,然后尝试检索nodeName。由于在您的函数中删除了节点,并且从DOM中删除了IE,因此IE会抛出错误。调用setTimeout()允许调用者在替换之前释放该节点。