为什么单击事件在此代码中不起作用(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/

10-12 06:50