使用jQuery更改“选择选项”无法正常工作的顺序
Using jQuery to change the order of Select Options not working correctly
我有一个朋友帮我编写代码,因为我无法使其正常工作。我正在尝试编辑选择列表项目的顺序,因为我无法手动编辑列表,因为该列表是在名为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()
来绑定点击事件。因此,处理程序将只被激发一次。
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作