【发布时间】:2013-04-18 12:06:32
【问题描述】:
我希望列表元素的值是排序事件期间排序位置的索引。
此值应在排序更改事件期间自动更新。
<script type="text/javascript">
$(function() {
$('#sortable').sortable({
start : function(event, ui) {
var start_pos = ui.item.index();
ui.item.data('start_pos', start_pos);
},
change : function(event, ui) {
var start_pos = ui.item.data('start_pos');
var index = ui.placeholder.index();
if (start_pos < index) {
$('#sortable li:nth-child(' + index + ')').html(index-2);
} else {
$('#sortable li:eq(' + (index + 1) + ')').html(index + 1);
}
},
update : function(event, ui) {
var index = ui.item.index();
$('#sortable li:nth-child(' + (index + 1) + ')').html(index);
},
axis : 'y'
});
});
</script>
我创造了一个小提琴 http://jsfiddle.net/jagan2explore/4mcpq/
解释我的要求。
如果我将第 1 个元素移动到第 5 个位置,则所有其他元素的值都会正确更新, 如果我将第 5 位移到第 1 位,则值会相应更新。
假设如果我将列表元素从 1 移动到 5 并从 5 移动到 2 而不离开(在单排序事件期间),则值不会相应地更新。
我错过了什么吗??
任何帮助将不胜感激。提前致谢
【问题讨论】:
标签: jquery jquery-ui jquery-ui-sortable