Как заменить узел dynatree новым узлом? - PullRequest
0 голосов
/ 22 июля 2011

Я создал 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 Ответ

4 голосов
/ 10 сентября 2011

Если вы хотите переименовать текущий узел, вы можете использовать

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