如何用新节点替换dynatree节点?

时间:2011-07-22 08:27:26

标签: jquery json contextmenu dynatree

我创建了一个带有右上下文菜单的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()方法,但是无法继续使用它。请帮忙。

1 个答案:

答案 0 :(得分:4)

如果要重命名当前节点,可以使用

var node = $("#tree").dynatree("getActiveNode");
node.data.title = "My new title";
node.render();