我使用一些代码以编程方式选择一个dynatree的根节点(其中唯一一个),即
$("#divDynaTree").dynatree("getRoot").visit(function (node) {
node.select(true);
});
我有第二个dynatree,其中包含多个" parent"和#34;孩子"节点,并希望选择其中一个"孩子"我在应用程序中使用单独的事件(按钮单击)时以编程方式。我想使用子节点的标题,但我很难找到正确的语法来做到这一点。我确实探索过这个网站上的其他dynatree线程,而且还没有找到我正在寻找的东西(或者它很接近,但是我的经验不足使我无法看到它)。我假设代码与上面的代码类似,使用"访问" ..但我不知道此后该去哪里。任何帮助将不胜感激。
答案 0 :(得分:2)
尝试选择所有子节点:
$(function(){
var inEventHandler = false;
$("#tree").dynatree({
checkbox: true,
selectMode: 2,
[...]
onSelect: function(select, dtnode) {
// Ignore, if this is a recursive call
if(inEventHandler)
return;
// Select all children of currently selected node
try {
inEventHandler = true;
dtnode.visit(function(childNode){
childNode.select(true);
});
} finally {
inEventHandler = false;
}
}
或按名称搜索节点:
var match = null;
tree.visit(function(node){
if(node.data.title === "foo"){
match = node;
return false; // stop traversal (if we are only interested in first match)
}
});
alert("Found " + match);
答案 1 :(得分:0)
您可能正在寻找
$("#tree").dynatree("getTree").activateKey("KeyName")
将使用键从外部事件激活节点。这是来自&{34;编程dynatree"
下的dynaTree documentation 第二个示例我没有找到一种方法来查找节点的名称而不是键,可能有更好的方法,但我认为你可以使用访问找到密钥,然后像这样激活它
function ActivateNodeByTitle(nodeTitle){
var $tree = $("#tree").dynatree("getTree")
$tree.visit(function(node){
if(node.data.title === nodeTitle){
$tree.activateKey(node.data.key)
return false; // stop traverse
}
});
return false
}