1

次のように設計されたネスト可能なツリーがあります https://gist.github.com/Achaius/5291761

ノードが並べ替えられた場合にのみ、この onchange メソッドをトリガーしたいと考えています。しかし、現在の機能は、クラス「dd-handle」の要素をクリックすると、onchange イベントがトリガーされ、サーバー側スクリプトが呼び出されることです。

これは、296 行目あたりに「this.el.trigger('change');」があるために発生しています。リストを並べ替えた場合にのみ、この変更イベントをトリガーしたいと考えています。

4

1 に答える 1

3

ページロード時に最初の順序を保存します。変更イベントで、新しい注文と古い注文を比較します。それらが異なる場合、順序の変更が行われています。

var idList = getIdList();

$('.dd').nestable();

$('.dd').on('change', function (event) {
    var newIDList = getIdList();

    if (newIDList != idList) {
        console.log("Order has been changed");
        idList = newIDList;
    }
});

function getIdList() {
    var idList = '';
    $('.dd-item').each(function () {
        idList += $(this).data('id');
    });

    return idList;
}

デモ: http://jsfiddle.net/94NNb/1/

于 2013-04-02T13:24:55.383 に答える