0

好的,我再次遇到了 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 克隆一个元素块。选择行为怪异的元素

4

1 回答 1

0

您必须为这些特定的新元素添加制服。如果将制服添加到元素,然后将其再次添加到它将破坏的同一元素。你想尝试类似的东西:

$("#newID1 input:text, #newID2 input:file, #newID3 select, #newID4 textarea, #newID5 input:button").uniform();

要不就:

$("#newID select").uniform();
于 2013-01-17T18:36:01.817 回答