gpt4 book ai didi

javascript - 使用 ajax 时 Dynatree 忽略 select 属性

转载 作者:可可西里 更新时间:2023-11-01 02:48:31 31 4
gpt4 key购买 nike

我正在使用 dynatree 插件显示复选框树,使用多选模式(模式 3)。

当使用ajax(没有延迟加载)初始化树时,似乎忘记了一些节点是最初选择加载的。当我选择这些节点之一时,传递给 onSelect 处理程序的标志值为真,即:它认为我想选择该节点。

当我再次单击该复选框时,它会取消选择。在我实际单击复选框之前,似乎在后台不会注册选择。我想加载此节点已选定的树。

我用来加载树的 json 对我来说看起来不错; select 属性对于所讨论的节点(根节点)为真。这是 JSON 的片段:

{
"expand":true,
"title":"All",
"isFolder":false,
"key":"0",
"isLazy":false,
"addClass":null,
"select":true,
"unselectable":false,
"children": [... omitted for clarity]
}

更新

我正在以这种方式加载树:

$("#locationsTree").dynatree({
checkbox: true,
selectMode: 3,
initAjax: {
type: "POST",
url: dynaTreeInitUrl
},
classNames:
{
nodeIcon: ""
}
});

其中 dynaTreeInitUrl 是返回 json 的 url。

如果我像这样硬编码 JSON:

$("#locationsTree").dynatree({
checkbox: true,
selectMode: 3,
children: {
"expand":true,
"title":"All",
"isFolder":false,
"key":"0",
"isLazy":false,
"addClass":null,
"select":true,
"unselectable":false,
"children": [{
"expand": true,
"title": "Child",
"isFolder": false,
"key": "1",
"isLazy": false,
"addClass": null,
"select": true,
"unselectable": true,
"children": []
}]
},
classNames:
{
nodeIcon: ""
}
});

它有效。 :/

更新:

我发现了为什么会这样:

这是 dynatree 中的一个错误 - 或者可能是它试图变得太聪明的预期行为。

如果子节点具有unselectable = true,则加载子节点时将取消选择父节点,即使父节点具有select = true。这使得无法在选择是分层的情况下创建树 - 即:拥有它以便如果选择父级,则自动选择所有子级,并且不能取消选择。我想这可以作为另一种“模式”添加到 dynatree。

最佳答案

我发现了为什么会这样:

这是 dynatree 中的一个错误 - 或者可能是它试图变得太聪明的预期行为。

如果子节点具有unselectable = true,则加载子节点时将取消选择父节点,即使父节点具有select = true。这使得无法在选择是分层的情况下创建树 - 即:拥有它以便如果选择父级,则自动选择所有子级,并且不能取消选择。我想这可以作为另一种“模式”添加到 dynatree。

关于javascript - 使用 ajax 时 Dynatree 忽略 select 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125480/

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