对于我的问题的新生事道歉,我还是jQuery的新手。我遇到了一个问题:有没有办法让jQuery能够看到并对使用.clone()
动态创建的元素做出反应?
目前,每当我克隆某些内容时,它显然不会被DOM“看到”,因此事件未被注册。
这是我创建的一个混乱的jsFiddle:http://jsfiddle.net/3MvPL/
单击“提交”会显示alert()
,但该元素的克隆版本不会显示。
答案 0 :(得分:5)
这是因为元素是动态附加的:
$("#forms").on("submit", ".saveForm", function(event) {
event.preventDefault();
alert("Worked!");
});
请查看文档here的事件委派部分。
答案 1 :(得分:5)
您需要在克隆参数中添加true
:
$(".newForm").clone(true).appendTo("#forms").removeClass("newForm").fadeIn();
jQuery clone:http://api.jquery.com/clone/
第一个参数是“克隆事件处理程序”。