jquery sortable - 在更改时分配连续的元素ID

时间:2013-05-07 12:41:23

标签: jquery list

我将新表单元素添加到可排序列表中。当重新排列列表时,我会像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的列表,这些ID在重新排列时会不同步。如何使用jquery遍历列表并重新分配元素ID?

2 个答案:

答案 0 :(得分:4)

将该功能放在update回调

$( "#sortable" ).sortable({
    update: function(event, ui) {
      $('select').each(function(index){
         $(this).attr('id', index + 1);
      });
    }
});

答案 1 :(得分: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?
      });
   }
});