我创建了一个带有右上下文菜单的dynatree,它还有一个子菜单。要求是,在点击子菜单的任何项目时,子菜单项应该替换从其激活的树节点。 Followin是图示视图:
ABC
DEF
GHI-> Lets say on right click of GHI, we have a context menu->XYZ which further has a sub-menu-> PQR. Now what I want is that on click of PQR, it should replace GHI.
我编写了以下代码来创建树和上下文菜单。
$(function(){
$("#tree").dynatree({
initAjax: {
url: "sample-data1.json"
} ,
onActivate: function(node) {
$("#echoActive").text(node.data.title);
},
onDeactivate: function(node) {
$("#echoActive").text("-");
}
});
});
function ReplaceTest() {
var tree = $("#tree").dynatree("getTree");
}
function Replace()
{
var f = function(){ReplaceTest();};
setTimeout(f,0);
}
<div>
<ul id="myMenu" class="contextMenu">
<li><a href="#">Employee Data</a>
<ul>
<li><a href="#" onclick="Replace()">Name</a></li>
<li><a href="#" onclick="Replace()">Desig</a></li>
<li><a href="#" onclick="Replace()">ID</a></li>
<li><a href="#" onclick="Replace()">Mob</a></li>
</ul>
</li>
</ul>
</div>
在上面的代码中,我在子菜单项上给出了onclick()方法,但是无法继续使用它。请帮忙。
答案 0 :(得分:4)
如果要重命名当前节点,可以使用
var node = $("#tree").dynatree("getActiveNode");
node.data.title = "My new title";
node.render();