2011-05-05 82 views
1

我是JQuery/Jstree的新手。當我試圖以編程方式選擇一個節點時,它總是返回容器節點,而不是我試圖獲得的子節點。 請幫忙。問題:Jstree select節點總是返回容器節點

我的代碼如下,

<div id="containerId" class="demo"> 
<ul> 
    <li id="phtml_1"> 
     <a href="#">Root node 1</a> 
     <ul> 
      <li id="zzx"> 
       <a href="#">Child node 1</a> 
      </li> 
      <li id="phtml_3"> 
       <a href="#">Child node 2</a> 
      </li> 
     </ul> 
    </li> 
</ul> 

的JavaScript

$(function() { 
    $("#containerId").jstree({ 
     "plugins" : [ "themes", "html_data", "ui" ] 
    }); 
}); 

腳本

$(document).ready(function() { 
    var node= $("#containerId").jstree("select_node","#zzx"); 
    //Problem here, why the id is still the "containerId", not the "zzx"? 
    alert(node.attr("id")); 
}); 

感謝--Roger

回答

0

要設置node等於#('containerId'),沒有別的。當你在jQuery中調用一個對象的方法時,結果就是對象。這樣,你可以鏈的方法是這樣的:

$('#containerId').method1().method2().method3(); 

如果你想以編程方式選擇一個節點,你已經這樣做了正確:

$("#containerId").jstree("select_node","#zzx"); 

既然你知道你只是選擇,你的節點可以得到節點就像使用jQuery任何其他元素:

$('#zzx') 

反之,如果你想每次選擇一個節點時,調用函數,使用:

$('#containerId').bind('select_node.jstree', function (event, data) { 
    alert(data.rslt.obj.attr('id')); 
})