2012-03-23 2 views
1

jsTreeのルート(または他の)ノードの削除/名前変更/移動を拒否する方法は?例えば

[{ 
"data": "reference", 
"attr": { 
    "id": "0" 
}, 
"state": "open", 
"children": [ 
    [{ 
     "data": "one", 
     "attr": { 
      "id": "1" 
     }, 
     "state": "closed" 
    }, { 
     "data": "two", 
     "attr": { 
      "id": "2" 
     } 
    }] 
] 
}, { 
"data": "recycle bin", 
"attr": { 
    "id": "bin" 
}, 
"state": "closed", 
"children": [] 
}] 
私は「DND」、「CRRM」として/移動/名前の変更「を参照」&「ごみ箱」ノードを削除拒否する必要が

「コンテキストメニュー」プラグインを回避するために

答えて

2

使用して移動crrm pluginあなたができる:

"crrm": { 
    "move": { 
     "check_move": function(m) { return (m.o[0].id !== "0" && m.o[0].id !== "bin"); } 
    } 
} 

要約すると、あなたが移動、またはそれ以外の場合にFALSEを可能にするためにTRUEを返す必要があります。したがって、移動するノードのIDがの参照またはのごみ箱ではないことを確認します。

他のタスクを実行するには、必要なものがすべてあるので、jsTree documentationをご覧ください。あなたはノードキャプチャイベントを削除し、ノードのメタデータを確認することができ

+0

ありがとう!私は怠惰ではない:)私は脇見だ。 – dudeonthehorse

1

:-)怠惰はいけません:

.bind('delete_node.jstree', function (e, data) { 
    // Check medatada, assuming that root's parent_id is NULL: 
    if (data.rslt.obj.attr('parent_id') == null) { 
     alert('Root folder is here to stay.'); 
     e.stopImmediatePropagation(); 
     return false; 
    } 
}) 
関連する問題