jquery sortable-更改时重新分配conscutive元素ID
我正在将新表单元素添加到可排序列表中。重新排列列表时,我希望ID是连续的。迄今为止的代码:jquery sortable-更改时重新分配conscutive元素ID,jquery,list,Jquery,List,我正在将新表单元素添加到可排序列表中。重新排列列表时,我希望ID是连续的。迄今为止的代码: $( "#sortable" ).sortable(); $( "#sortable" ).disableSelection(); var counter = 1; $('a').click(function () { var elems = '<li>' '<input name="q_' + counter + '" type="text"/>'
$( "#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?将函数放入更新回调中
将函数放入更新回调函数中 您可以为此使用更改事件
$("#sortable").sortable({
change: function(event, ui) {
// reset all the IDs
$.each($('select'), function(i, v) {
this.id = "type_" + i; // or the "name" attribute?
});
}
});
您可以为此使用更改事件
$("#sortable").sortable({
change: function(event, ui) {
// reset all the IDs
$.each($('select'), function(i, v) {
this.id = "type_" + i; // or the "name" attribute?
});
}
});
只是想澄清一下:如果您不需要,在排序时更改更新ID可能会导致开销,而在您释放鼠标按钮结束排序时更新ID效果很好。对我的代码稍加修改:$'select'.eachfunctionindex{$this.attr'name','t\'+index;};“+1”是冗余的-创建了01、11、21、31等,但是,由于您将其附加到字符串中,它只是被连接起来:只是为了澄清:如果您不需要,则在排序时更改更新ID可能会导致开销,而在您释放鼠标按钮结束排序时更新ID这非常有效。对我的代码稍加修改:$'select'.eachfunctionindex{$this.attr'name','t\'+index;};“+1”是冗余的-创建了01、11、21、31等。+1使其从1开始,但由于您将其附加到字符串中,它只是被连接起来: