如何让jQuery看到.clone()元素?

时间:2013-07-08 13:25:07

标签: jquery

对于我的问题的新生事道歉,我还是jQuery的新手。我遇到了一个问题:有没有办法让jQuery能够看到并对使用.clone()动态创建的元素做出反应?

目前,每当我克隆某些内容时,它显然不会被DOM“看到”,因此事件未被注册。

这是我创建的一个混乱的jsFiddle:http://jsfiddle.net/3MvPL/

单击“提交”会显示alert(),但该元素的克隆版本不会显示。

2 个答案:

答案 0 :(得分:5)

这是因为元素是动态附加的:

$("#forms").on("submit", ".saveForm", function(event) {
    event.preventDefault();
    alert("Worked!");
});

请查看文档here的事件委派部分。

jsFiddle example here.

答案 1 :(得分:5)

您需要在克隆参数中添加true

$(".newForm").clone(true).appendTo("#forms").removeClass("newForm").fadeIn();

jQuery clone:http://api.jquery.com/clone/

第一个参数是“克隆事件处理程序”。