2010-01-11 83 views
1

我願意使用jquery treeview。我有一個項目的類別和子類別選擇,我想在樹狀視圖中顯示它們。我想然後獲得點擊價值。如何檢索jquery樹視圖中的單擊元素

因爲我對那種東西的工作時刻:

<ul id="treeview"> 
    <li>group1a 
     <ul> 
      <li>group11 </li> 
     </ul> 
    </li> 
    <li>group2 </li> 
    <li>group3 </li> 
    <li>group4 </li> 
    <li>group5 </li> 
</ul> 

,我嘗試這個劇本,但點擊功能扔給我一個錯誤。

<script type="text/javascript"> 
      $().ready(function() { 
       $("#treeview").treeview(); 
      }); 

      $("#treeview").click(function (e) { 
       e.target.addClass("selected"); 
      }); 

</script> 

我是一個非常大的初學者的搬運東西這個jQuery的方式,所以我想我錯過了一些重要的地方......感謝您的幫助..

回答

2

addClass是一個jQuery的方法,而e.target不是jQuery對象。你需要把它們放在$()

$("#treeview").click(function (e) { 
    $(e.target).addClass("selected"); 
}); 

您的代碼將不會不管怎麼說工作,因爲單擊事件只能被綁定到#treeview元素,當該元素火災,e.target永遠是#treeview元素。什麼你正在尋找可能是這樣的:

$("#treeview li").click(function() { 
    $(this).addClass("selected"); 
}); 

此綁定點擊函數將所有li元素,當點擊其中之一,它增加了「選擇」類該元素。

也許你想也允許取消選擇對象,所以你應該使用toggleClass而不是addClass。如果你想允許選擇只有一個對象,你可以使用這個:

$("#treeview li").click(function() { 
    // Clear all selected states 
    $('#treeview li').removeClass('selected'); 
    // Set current as selected 
    $(this).addClass("selected"); 
}); 

希望這會有所幫助。

+1

我正在回答這個問題,但Tatu第一個得到了它。 – fserb 2010-01-11 16:28:38

0

嘗試:

$(document).ready(function(){ 
    $("#browser").treeview({ 
     toggle:function(){ 
      console.log($(this).find('ul li')); 
     } 
    }); 

切換是點擊一個回調。 'this'值代表包含de'ul'與樹內容的'li'。在這種情況下,控制檯將會找到所有'ul'嵌套在'ul'內

相關問題