为什么单击事件在此代码中不起作用(JSFiddle:http://jsfiddle.net/3WeP5/):
var holder = $("<div></div>");
$(document.body).append(holder);
var btn = $("<button>Click Here</button>");
btn.click(function(){alert('clicked');});
holder.append(btn);
holder.html("");
holder.append(btn);
你可以替换这一行:
btn.click(function(){alert('clicked');});
与(不再工作):
btn.bind("click",function(){alert('clicked');});
如果我不使用 jquery 并像这样设置 javascript 事件,它就可以正常工作!!
btn[0].onclick=function(){alert('clicked');}
为什么当我重新附加元素(按钮)时单击事件不起作用,我该如何解决?
最佳答案
看看 documentation of .html()
:
holder.html("");
正在删除按钮的处理程序。如果你想保留它,你可以使用 clone
作为:
holder.append(btn.clone(true));
holder.html("");
holder.append(btn.clone(true));
关于javascript - 为什么在重新追加元素时单击事件不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17629544/