5

次のようなソート可能なセットアップがあります。

$('.sortable').sortable({
    items: '> *:not(.nosort)',
    axis: 'y',

    stop: function (event, ui) {
        var index = ui.item.index();
        // do something with the index
    }
});

nosortソート可能なクラスの要素を無視したい。

これはうまくいきます。ただし、取得したインデックスには、並べ替え可能な要素だけでなく、並べ替え可能なすべての要素が含まれているように見えるため、必要なものには実際には使用できません。

これを回避する簡単な方法はありますか?


ソート可能なサンプルのjsFiddleを次に示します。

(注: インデックスから 1 を引くことはオプションではありません。除外される要素の数と位置が異なる可能性があるためです)

4

1 に答える 1

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();
});

デモ: http://jsfiddle.net/dirtyd77/Yy9hW/3/

于 2013-08-15T18:40:30.197 に答える