想象一下,我有以下代码:
... <div id="div1"> <div id="div2">Original div2</div> </div> <div id="div3"></div> ...
如果我跑
$('#div1').html(''); $('#div3').html('<div id="div2">New div2</div>');
我最终会遇到问题,因为我没有使用.remove()从dom中删除#div2,或者以这种方式清除html对我这样做了吗?
如果div2包含一些附加了处理程序的javascript,比如说
$('#div2').on('click',function() { ... });
解决方法
do I end up with problems because I didn’t use .remove() to remove #div2 from the dom,or does clearing the html in this way do that for me?
不,jQuery将在内部使用.remove(技术上它使用cleanData,但它执行相同的清理.)
事件将会丢失,因此您必须重新绑定它们.