2012-03-23 66 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 2012-03-26 09:36:47

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