我已经在这几天挣扎过了几天。我有一个很好的搜索功能,但现在我需要允许用户点击添加按钮来搜索页面上的多个内容。不幸的是,当我克隆表格行时(我改变了id和必要的名字),新的搜索不起作用。我可以在html中创建行的精确副本,它们都可以正常工作,但克隆的行并不是否具有相同的id。我认为它与jquery dom有关,但老实说,我根本不理解dom或jquery。
老实说,解释一切都相当复杂,所以我创建了一个完美地说明它的jsfiddle。如果您点击"点击此处"您会注意到在搜索框打开的前两行中的任何一行上,但是如果单击“添加”,并尝试在新创建(克隆)的行上打开搜索框,则它不起作用。我真的只想改变这段代码:
$(document).ready(function() {
var count = $("table.people tr").length;
$("#Add").click(function () {
count++;
var $clone = $("#people_table tbody tr:first").clone();
$clone.attr({
id: function(_, id) { return id.slice(0, - 0) + count},
style: "display:block;", // remove "display:none"
});
$clone.find("input,select").each(function () {
var name = $(this).attr("name").replace("row[0]", "row[" + count + "]");
$(this).attr("name", name);
});
$clone.find("option").each(function() {
$(this).val("").attr("id", function(_, id) { return id + count });
});
$("#people_table tbody").append($clone);
alert(onDomChange);
});
});
主要是因为小提琴中的其他代码在我的网站上的多个地方使用(并且工作顺利),我希望尽可能保持一致。
答案 0 :(得分:2)
将.clone()
替换为.clone(true)
,这将深度克隆对象,包括事件处理程序