在一个 aspx 页面上,我有一个这样的可排序列表,它是使用这个插件制作的。
<ul id="sortableQueue" class="sortable">
<li style="cursor: move" data-shotid="1">Shot Name - 1</li>
<li style="cursor: move" data-shotid="2">Shot Name - 2</li>
<li style="cursor: move" data-shotid="3">Shot Name - 3</li>
</ul>
然后在页面底部,我有代码加载可排序列表的 js,并设置了一个名为“sortupdate”的函数,该函数在每次列表顺序更改时运行。
<script src="js/html.sortable.js"></script>
<script>
$('.sortable').sortable().bind('sortupdate', function (e, ui) {
alert(ui.oldindex + ' -> ' + ui.item.index());
});
</script>
这就是事情变得奇怪的地方。将项目从一个地方移动到另一个地方时,例如项目 1 到项目 2 的位置,警报按预期工作,返回“0 -> 1”但随后另一个警报框显示完全相同的“0 -> 1”。在我看来,Javascript 出于某种原因运行了两次,但我以前从未见过这样的事情,也不知道是什么原因造成的。
我需要它只运行一次,否则当我尝试存储新订单时会发生非常奇怪的事情。
任何人以前见过类似的问题,并有一些建议?我不知道这是 JavaScript 问题、ASP.NET 问题还是 html5sortable 问题,所以我什至不知道从哪里开始。