0

dndプラグインを使用してツリーアイテムをドラッグアンドドロップして位置を変更できるjsTreeがあります。ただし、オブジェクトの前または後にアイテムをドロップするかどうかによってインデックスが間違っていることに気付き、インデックスの問題を修正する方法について何時間もグーグルした後、後を無効にする方が簡単であるという結論に達しましたサブセットの最後のツリーノードでない限り

次のコードを使用して、configuredndプラグインを呼び出しています。

    'dnd': {
        'drop_finish': function (data) {
            alert("hi");
        },
        'drag_check': function (data) {
            alert('hi1');
            if (data.r.attr('id') == 'RootNode') {
                return false;
            } else if (data.r.hasClass('jstree-last')) {
                return {
                    after: true,
                    before: true,
                    inside: true
                };
            } else {
                return {
                    after: false,
                    before: true,
                    inside: true
                };
            }
        }
    }

ただし、アラートが発生するhi1ことはありません(ただしhi、アイテムをドロップした後にアラートが発生します)。そのため、要素の後にドロップすることはできます。jstree-dropドラッグチェックを呼び出す方法を見つけて、クラスの追加やこのサイトで提案されているその他のことを試しましたが、アラートを受け取ることができませんhi1

この問題を解決するためにどんな助けもいただければ幸いです

ありがとう

4

1 に答える 1

1

「dnd」プラグインが外部ドラッグアンドドロップに使用しているようです。check_moveノードの最後の位置に移動するのを防ぐために使用できます。

"crrm": {
    "move": {
        "check_move": function(m) {
        var length = $(m.np).find("ul:first > li").length,
            afterLast = length == m.cp;
        if (length > 0 && afterLast) {
            return false;
        }
        return true;                            
     }
 }
于 2013-03-20T10:59:02.130 に答える