使用jQuery更改“选择选项”无法正常工作的顺序

Using jQuery to change the order of Select Options not working correctly

本文关键字:常工作 工作 顺序 更改 jQuery 选择 选项 选择选项 使用      更新时间:2023-09-26

我有一个朋友帮我编写代码,因为我无法使其正常工作。我正在尝试编辑选择列表项目的顺序,因为我无法手动编辑列表,因为该列表是在名为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]));
    });
});

此处的示例-https://jsfiddle.net/7bbxd42b/5/

您应该只订购一次。您可以使用全局级别的标志来检查您是否已经订购了条目:

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()来绑定点击事件。因此,处理程序将只被激发一次。