javascript - 将函数附加到 before.jstree

标签 javascript jquery treeview jstree

我试图防止删除 jstree 中的根节点。在早期版本中,有 before.jstree 事件,您可以使用它来执行以下操作:

.on("before.jstree", function (e, data) {
    if(data.func === "delete_node") {
        if (data.node.type == "root_node" || true)
        {
            e.stopImmediatePropagation();
            return false;
        }
    }
})

但是由于 before.jstree 方法在 jstree 3( https://www.jstree.com/api/ ) 中被删掉了,所以这种方法不再起作用了。是否有无需操作 contextmenu 事件的替代解决方案?

最佳答案

您可以使用jstree.core.check_callback属性来实现此目的。此属性在每个 jstree 事件触发之前计算,并且需要一个 bool 值 - true 继续调用事件处理程序,false 阻止它。
您可以为此属性附加一个回调函数,并根据触发的事件做出决定。在您的例子中,如果触发的事件是 delete_node 并且事件目标节点是根节点,您可以返回 false 来阻止该事件。

$('#tree').jstree({
    'core' : {
        'check_callback' : function (operation, node, node_parent, node_position, more) {
            if ((operation == "delete_node" && node.type && node.type == "root") {
                return false;
            }
            return true;
        }
    }
});

关于javascript - 将函数附加到 before.jstree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36646983/

相关文章:

Silverlight 4 TreeView MVVM WCF

java - 使用 javafx 创建自定义树

jquery - 即 : matrix transformations via jquery and css

javascript - 删除字符串中的୹字符 - Jquery

jQuery "$(this)": is repeated use efficient?

javascript - 从多个嵌套位置删除没有内容的类的 div

java - 设置 SWT.FULL SELECTION 时,SWT TreeViewer 同时展开和折叠

javascript - 澄清重新分级循环引用

javascript - 根据滚动期间当前可见的内容突出显示索引中的元素

javascript - jquery.min.js 加载资源失败