好的,再一次,我遇到了jQuery统一主题的障碍。 http://uniformjs.com/我正在使用文本输入,下拉列表和按钮来克隆行以添加(克隆)或删除行。问题是,一旦我克隆了一行,就无法更改新行上的下拉选择。如果我禁用统一功能,它就可以工作。
<!---<script type="text/javascript" charset="utf-8">
$(function(){
$("input:text, input:file, select, textarea, input:button").uniform();
});
</script>--->
这是我的代码。统一更新似乎也不起作用。
//
id=0;
$("table#customers_tab img.remove").live("click", function (event) {
$(this).parents("tr").remove();
var remove_id = event.target.id;
var index = remove_id.substring(6);
var table = document.getElementById("customers_tab");
for(var i=parseInt(index); i<table.rows.length;i++){
$($('table#customers_tab tr')[i]).find("img.add").attr("id","add"+i);
$($('table#customers_tab tr')[i]).find("img.remove").attr("id","remove"+i);
}
});
$("table#customers_tab img.add").live("click", function (event) {
id++;
var master = $(this).parents("table#customers_tab");
var add_id = event.target.id;
var index = add_id.substring(3);
var prot = $($('table#customers_tab tr')[index]).clone();
var incr = parseInt(index)+1;
prot.find("img.add").attr("id","add"+incr);
$('.feature').live('change',function(){ ////SOLUTION HERE
$.uniform.update("select"); ////
}); ////
$($('table#customers_tab tr')[index]).after(prot);
var table = document.getElementById("customers_tab");
for(var i=incr+1; i<table.rows.length;i++){
$($('table#customers_tab tr')[i]).find("img.add").attr("id","add"+i);
$($('table#customers_tab tr')[i]).find("img.remove").attr("id","remove"+i);
}
$.uniform.update(); //NOT WORKING
});
$("#delAllCustomers").live("click", function (event) {
$("#customers_tab").children().remove();
});
//
这与我的问题非常相似,但没有解决我的问题。 jquery cloning a block of element. select element acting weired
答案 0 :(得分:0)
您必须为这些特定的新元素添加制服。如果向元素添加uniform,则将其再次添加到它将断开的同一元素中。你想尝试类似的东西:
$("#newID1 input:text, #newID2 input:file, #newID3 select, #newID4 textarea, #newID5 input:button").uniform();
或只是:
$("#newID select").uniform();