我试图在订单更改后将itemWrapper中的所有li id放在一个数组中。
它确实如此,但它总是丢失一个项目。李有多少并不重要。每次它都缺少一个li id。
我做错了什么?
var result = "";
$("#itemWrapper").sortable({change: function(event, ui) {
result = $("#itemWrapper").sortable("toArray");
}});
$(".colItem").disableSelection();
<ul id="itemWrapper" style="list-style-type:none;">
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_48_0_1"><img src="../images/items/1309680939.jpg" width="190" height="130" alt="3768" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_50_0_1"><img src="../images/items/1309681037.jpg" width="190" height="130" alt="3765" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_58_0_1"><img src="../images/items/1309681326.jpg" width="190" height="130" alt="3768" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_51_0_1"><img src="../images/items/1309681056.jpg" width="190" height="130" alt="11090" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_52_0_1"><img src="../images/items/1309681077.jpg" width="190" height="130" alt="3766" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_53_0_1"><img src="../images/items/1309681100.jpg" width="190" height="130" alt="3769" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_54_0_1"><img src="../images/items/1309681118.jpg" width="190" height="130" alt="11092" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_55_0_1"><img src="../images/items/1309681135.jpg" width="190" height="130" alt="11077" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_56_0_1"><img src="../images/items/1309681155.jpg" width="190" height="130" alt="3762" /></li>
<li class="colItem ui-state-default" style="margin-right:-5px;" id="item_57_0_1"><img src="../images/items/1309681177.jpg" width="190" height="130" alt="3761" /></li>
</ul>
答案 0 :(得分:7)
我认为问题在于您使用的是错误的事件。如果你使用“停止”它是有效的。在这里摆弄:http://jsfiddle.net/jeYPJ/
$("#itemWrapper").sortable({stop: function(event, ui) {
result = $("#itemWrapper").sortable("toArray");
console.log(result.length);
}});
我认为,与排序时触发更改事件的事实有关:在这种情况下,它不会计算您正在排序的项目。