Javascript 在更改递归迭代时停止jquery
我有一个jstree插件,我只需通过选择的节点填充这个插件,并在节点选择方法中使用ajax发布数据。虽然我用“letChangeTrig”做了一个控件 由于I refrest tree,它递归地调用onChamge方法。。但我想在用户仅选择时调用此Javascript 在更改递归迭代时停止jquery,javascript,jquery,recursion,Javascript,Jquery,Recursion,我有一个jstree插件,我只需通过选择的节点填充这个插件,并在节点选择方法中使用ajax发布数据。虽然我用“letChangeTrig”做了一个控件 由于I refrest tree,它递归地调用onChamge方法。。但我想在用户仅选择时调用此 $('#tree_2').jstree({ }).on('changed.jstree', function (e, datap) { debugger if(!letChangeTrig) {
$('#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()
方法?
它阻止事件向父元素冒泡,防止任何父事件处理程序被执行。事件对象是传递到回调函数的e。试试e.stopPropagation()