jQuery的:
var a = $("<a href='#'>Click me</a>")
var d = $("div:first");
a.appendTo(d);
a.on("click",function(){
if(prompt('enter password') === 'password'){
$(d).remove();
}
});
小提琴:http://jsfiddle.net/bujRr/
<小时/> 问题:虽然<a>
不再存在,但click
仍然与它绑定。
<div>
被.remove()
编辑?.off()
之前致电.remove()
吗?<小时/> 注意:不,我实际上并没有在JS中存储任何密码。为了拥有SSCCE,我删除了ajax调用以及其他代码。
答案 0 :(得分:3)
根据文档,事件也被删除:http://api.jquery.com/remove/
与.empty()类似,.remove()方法将元素取出 DOM。如果要删除元素本身,请使用.remove() 作为里面的一切。 除了元素本身,所有 绑定事件和与元素关联的jQuery数据将被删除。 要删除元素而不删除数据和事件,请使用.detach() 代替。强>
答案 1 :(得分:2)
是否删除了事件绑定?当
<div>
被.remove()
编辑时?
是的,系统会自动删除绑定到已删除项目(或其子项)的事件。
如果不是,那么在理论上运行几百次后,这是否会导致性能问题?
会的,但由于上述原因,这不是问题
我应该在
.off()
之前致电.remove()
吗?
没有