javascript - 停止 jquery onChange 递归迭代

标签 javascript jquery recursion

我有 jstree 插件 我只是通过选定的节点填充这个插件,并在节点选择方法中使用 ajax 发布数据。虽然我用“letChangeTrig”做了一个控制 由于我刷新树,它递归地调用自己的 onChamge 方法。但我想在用户仅选择时调用它。

$('#tree_2').jstree({            
}).on('changed.jstree', function (e, datap) {
    debugger
    if(!letChangeTrig)
    {
        letChangeTrig = true;
        return;
    }

    $.ajax({
        url: "../../Controller/ActiveDirectoryController.php5",
        type: "POST",
        dataType: "json",
        data: params,
        success: function (result) {
            treeData_ = prepareObjectsforTree(result.Objects);
            resfreshJSTree(treeData_);            
        },
        error: function (a, b, c) {

        }
    });
});

刷新:

function resfreshJSTree(treeDataa) {
    letChangeTrig = false;
    $('#tree_2').jstree(true).settings.core.data = treeDataa;
    $('#tree_2').jstree(true).refresh();

}

这是我的 jstree 刷新函数,它触发 onChange 方法......并发布数据......在响应成功后我再次调用它以使用更改的数据重建树但是通过这种方式它开始调用自己而无需用户选择 evet它陷入循环..我需要通过逻辑控制来阻止它

最佳答案

您是否尝试过 jQuery event.stopPropagation() 方法? 它停止将事件冒泡到父元素,从而阻止执行任何父事件处理程序。

关于javascript - 停止 jquery onChange 递归迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32584098/

相关文章:

javascript - 使用 C# 从 SQL 数据库动态更改图表数据

javascript - CSS渐变无法刷新

javascript - 动态添加jPlayer

java路径从网格的顶部到底部

java - 使用递归获取 2 个数字的乘积和商,而不使用 * 和/运算符

javascript - res.json 返回无意修改的输入

javascript - DataTables:总计一列 - 除了具有特定类别的行?

python - 使用递归的列表列表

javascript - 在 html/css 中将 Textarea 添加到上一个 textarea 的右边

javascript - 在页面加载之前检查登录和重定向