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

时间:2015-12-23 13:41:39

标签: javascript jquery

我有一位朋友帮我编码,因为我无法正常工作。我正在尝试编辑选择列表项的顺序,因为我无法手动编辑列表,因为列表填充在名为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/

1 个答案:

答案 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()来绑定点击事件。所以处理程序只会被触发一次。

相关问题