gpt4 book ai didi

javascript - Jstree - 无法在 AJAX 调用中检查复选框,适用于经典调用。一个问题?

转载 作者:行者123 更新时间:2023-12-03 07:21:36 25 4
gpt4 key购买 nike

我执行 AJAX 调用来创建和填充我的 JSTree div。我激活了复选框插件,并尝试检查 AJAX 结果回调中的所有复选框。这不起作用。

我将相同的函数(将选中所有框)绑定(bind)到一个按钮,在这里,它可以工作。

我还尝试使用 jQuery 通过自定义事件检查所有复选框,但它没有执行任何操作,如 AJAX 调用中

这是 JSTree 的问题还是我遗漏了什么?

我在 JsFiddle 中重现了这个问题(?):https://jsfiddle.net/Lyyn/c74wpa6z/

<小时/>

规范:

  • jQuery 1.9.1
  • jsTree 3.2.1
<小时/>

代码

HTML

<h1>
JSTree Demo
</h1>
<button id="btn">
Check All
</button>
<div id="jstree">

</div>

JS

// Populate the tree with some generic data
$.ajax({
// ... initial ajax code with some generic data
success: function(response) {
var $tree = $("#jstree");
$tree.jstree(response);

// Try to check all boxes, it doesn't work
checkAll($tree);
}
});

// Try to check all boxes, here it works. Why.
$("#btn").click(function(){
checkAll($("#jstree"));
})

// This will check all boxes inside the tree
function checkAll(tree) {
tree.jstree(true).check_all();
}

最佳答案

这是因为当您在成功回调中调用 checkAll 时,jstree 尚未构建节点。只需将您的 checkAll 调用包装到 ready.jstree 事件中,如下所示。查看演示 - Fiddle .

...
success: function(response) {
var $tree = $("#jstree");
$tree.jstree(response).on('ready.jstree', function() {

// Try to check all boxes
checkAll($tree);

});

关于javascript - Jstree - 无法在 AJAX 调用中检查复选框,适用于经典调用。一个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36190626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com