任何人都可以帮助我jQuery sortable.
下面的代码创建数组:
order = ["Layer1", "Layer2", "Layer0"].
这是正确的顺序,但for循环给出
result: Layer0, Layer1, Layer2.
当我拖动最后创建的列表项时,会发生这种情况,为什么Layer2
和Layer1
之间没有Layer0
?
为什么循环不在Layer1
,Layer2
,Layer0
的顺序?
window.onload = function(){
$(function() {
var idsInOrder=$("#myLayers").sortable({
update: function(event, ui) {
var changedList = this.id;
var order = $("#myLayers").sortable('toArray');
for(var a=0; a<=n; a++){
k=a.toString();
var u=jQuery.inArray( "Layer"+k, order );
console.log("Layer"+k );
}
},
});
$("#myLayers").disableSelection();
});
};
答案 0 :(得分:0)
<强> Demo 强>
因为,您正在使用第一个初始化的可排序对象。您可以使用以下实现;
<强> HTML:强>
<ul id="myLayers">
<li class="ui-state-default" id="1"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 1</li>
<li class="ui-state-default" id="2"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 2</li>
<li class="ui-state-default" id="3"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 3</li>
<li class="ui-state-default" id="4"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 4</li>
<li class="ui-state-default" id="5"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 5</li>
<li class="ui-state-default" id="6"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 6</li>
<li class="ui-state-default" id="7"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Layer 7</li>
</ul>
<b>Status:</b>
<div id="status"></div>
<强> jQuery的:强>
$(function() {
var idsInOrder=$("#myLayers").sortable({
update: function(event, ui) {
var layers = [];
$('#myLayers li').each( function(e) {
layers.push( ( $(this).index() + 1 ) + '= Layer ' + $(this).attr('id'));
});
var positions = layers.join("<br/>")
$("#status").html(positions);
}
});
$("#myLayers").disableSelection();
});