我有一个 sortable 设置如下:
$('.sortable').sortable({
items: '> *:not(.nosort)',
axis: 'y',
stop: function (event, ui) {
var index = ui.item.index();
// do something with the index
}
});
我想忽略来自sortable的nosort
类的元素。
这很好用;但是,我得到的索引似乎包括可排序的所有元素,不仅包括那些可以排序的元素,因此它不能真正用于我需要的东西。
有没有简单的方法可以避免这种情况?
以下是可排序的示例的jsFiddle。
(注意:从索引中减去1不是一个选项,因为排除元素的数量和位置可能会有所不同)
答案 0 :(得分:2)
获取.sortable
个孩子的集合,然后使用.index()
找到索引...
您可以通过进行以下更改来实现此目的:
$(document).ready(function () {
$('.sortable').sortable({
items: '> *:not(.nosort)',
axis: 'y',
stop: function (event, ui) {
// obtain index of the moved item
var index = $(this).children(':not(.nosort)').index(ui.item);
$('#index').text(index);
}
}).disableSelection();
});