【问题标题】:Show confirm dialog before delete node of jstree在删除 jstree 的节点之前显示确认对话框
【发布时间】:2013-06-30 13:43:46
【问题描述】:

我使用 jstree 和 jquery-ui v1.10.1。我在树上使用上下文菜单,我希望在删除节点之前显示确认对话框(如 jquery-ui 对话框)。 我在“before.jstree”事件中使用对话框,但是当显示对话框时,在选择一个选项之前(是或否),选定的节点被删除。 如何解决这个问题?

.bind("before.jstree", function(e, data) {
                  if (data.func === "remove") {
                      if (!confirmRemove()) {
                          e.stopImmediatePropagation();
                          return false;
                      }
                  }
              }

function confirmRemove() {
return  $confirmDialog.dialog('open');

}

【问题讨论】:

    标签: jquery-ui webforms jquery-ui-dialog jstree


    【解决方案1】:

    我使用的是 2.1.0 版本,这个功能还有另一个解决方案。

    您需要做的是向 check_callback 选项添加一个函数。 像这样:

            $("#your_tree").jstree({
            "core": {
                "check_callback": function (operation, node, node_parent, node_position, more) {
                    // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node', 'copy_node' or 'edit'
                    // in case of 'rename_node' node_position is filled with the new node name
                    if (operation === 'delete_node') {
                        if (!confirmRemove()) {
                            return false;
                        }
                    }
                    return true;
                }
            }
    

    我知道这是一个老问题,但我查找了一个更新的问题/答案但没有找到。

    希望对有相同问题的其他人有所帮助:)

    【讨论】:

      【解决方案2】:

      JQuery-UI-Dialog 是异步的;如果您调用它,您的事件处理程序不会停止执行并等待,而是继续并删除节点。

      尝试 JavaScript-Dialog confirm(),因为这是同步的,并且会停止进一步执行,直到用户确认或拒绝对话框。

      【讨论】:

        猜你喜欢
        • 2020-12-12
        • 1970-01-01
        • 2017-07-21
        • 2016-02-06
        • 2021-08-02
        • 2018-10-10
        • 2017-08-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多