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. select 要素の動作がおかしい

4

1 に答える 1

0

これらの特定の新しい要素にユニフォームを追加する必要があります。要素にuniformを追加すると、同じ要素に再度追加すると壊れます。次のようなものを試してみたい:

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

あるいは単に:

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