Jquery可排序的“更改”事件元素位置

有没有办法得到被拖动到新位置上的辅助对象的当前位置

$(“#可排序”).sortable({
开始:功能(事件、用户界面){
var currPos1=ui.item.index();
},
更改:功能(事件、用户界面){
var currPos2=ui.item.index();
}
});

当实际发生变化时,currPos1和currPos2似乎具有相同的值

我需要实现的是向用户突出显示“开始拖动元素”到“当前替换元素”之间的所有位置。一旦用户释放鼠标按钮,更新就会发生,只有在那个时我才能得到新的位置,但在释放鼠标之前我需要它

更新日期:2016年8月26日以使用最新的jquery和jquery ui版本加上引导来设置样式。

  • 演示:http://so.lucafilosofi.com/jquery-sortable-change-event-element-position/
$(函数(){
$(“#可排序”)。可排序({
开始:功能(事件、用户界面){
var start_pos=ui.item.index();
ui.项目数据(“开始位置”,开始位置);
},
更改:功能(事件、用户界面){
var start_pos=ui.item.data('start_pos');
var index=ui.placeholder.index();
如果(开始位置<索引){
$('#可排序li:n个子项('+index+')).addClass('highlights');
}否则{
$('#可排序li:eq(+(index+1)+')).addClass('highlights');
}
},
更新:功能(事件、用户界面){
$(“#可排序li”).removeClass('highlights');
}
});
});

发表评论