我有一位朋友帮我编码,因为我无法正常工作。我正在尝试编辑选择列表项的顺序,因为我无法手动编辑列表,因为列表填充在名为SellMedia的Wordpress插件中。目前提供的代码有效,但是当您单击下拉列表时它可以正常工作,如果您单击关闭并重新打开它,则会更改顺序。
有没有办法阻止这种情况发生?
$(document).on('click','#sell_media_item_size',function(){
$("#sell_media_item_size option").slice(1, 19).each(function () {
var options = $('#sell_media_item_size option');
$(this).insertAfter($(options[0]));
});
});
答案 0 :(得分:0)
您应该只订购一次。您可以在全局级别使用标志来检查您是否已订购条目:
var ordered = false;
$(document).on('click','#sell_media_item_size',function(){
if (!ordered) {
$("#sell_media_item_size option").slice(1, 19).each(function () {
var options = $('#sell_media_item_size option');
$(this).insertAfter($(options[0]));
});
ordered = true;
}
});
如果你能以其他方式检查它会更好,所以你不需要全局标志。
更新:我刚刚发现,您可以使用.one()
代替.on()
来绑定点击事件。所以处理程序只会被触发一次。