1

新しいフォーム要素を並べ替え可能なリストに追加します。リストを並べ替えるときはIDが連続するようにしたいです。これまでのコード:

$( "#sortable" ).sortable();
$( "#sortable" ).disableSelection(); 

var counter = 1; 

    $('a').click(function () {
    var elems = '<li>'
    '<input name="q_' + counter + '" type="text"/>' +
    '<select name="type_' + counter + '" >
           <option value="1">1</option>
           <option value="2">2</option>
           <option value="3">3</option>
     </select>' +
    '</li>' ;
    $('#sortable').append(elems);    


    counter++;    
    return false;


});

これにより、連続した ID を持つリストが生成されますが、再配置すると同期しなくなります。jquery を使用してリストを反復処理し、要素 ID を再割り当てするにはどうすればよいですか?

4

2 に答える 2

4

updateコールバック内に関数を配置します

$( "#sortable" ).sortable({
    update: function(event, ui) {
      $('select').each(function(index){
         $(this).attr('id', index + 1);
      });
    }
});
于 2013-05-07T12:52:56.887 に答える
1

changeこれにはイベントを使用できます。

$("#sortable").sortable({
   change: function(event, ui) {
      // reset all the IDs
      $.each($('select'), function(i, v) {
         this.id = "type_" + i; // or the "name" attribute?
      });
   }
});
于 2013-05-07T12:53:58.307 に答える