javascript
  • jquery
  • css
  • jstree
  • 2014-04-14 29 views 11 likes 
    11

    我試圖用jsTree實現一個非常簡單的樹。我發現文件密集且壓倒性的。展開父節點時的jsTree節點

    現在,我展開/點擊箭頭摺疊節點所示:

    enter image description here

    我希望能夠通過單擊節點名稱也展開/摺疊:

    enter image description here

    我使用的代碼很簡單;我沒有改變的JavaScript jsTree:

    <ul id="tree"> 
        <li> 
         SubFolder1 
         <ul id="tree"> 
         <li data-jstree='{"icon":"/Images/blue-folder.png"}'>Pub 1</li> 
         </ul> 
        </li> 
    </ul> 
    
    +0

    可能重複(http://stackoverflow.com/questions/4486032/open-branch-when-clicking-on-節點) – kostmo

    回答

    6

    只需在HTML文件中添加事件偵聽器,並調用toggle_node功能。下面的代碼用於監聽單擊。

    $(document).ready(function(){ 
        $('#jstree_div').on("select_node.jstree", function (e, data) { $('#jstree_div').toggle_node(data.node); }); 
    } 
    

    如果你想聽雙擊你需要另一個事件監聽器,因爲jsTree不支持雙擊事件。

    $('#jstree_div').on("dblclick",function (e) { 
        var li = $(e.target).closest("li"); 
        var node = $('#jstree_div').get_node(li[0].id); 
    
        $('#jstree_div').toggle_node(node) 
    }); 
    

    希望有所幫助。

    +1

    它現在支持雙擊[link](https://www.jstree.com/api/#/?q=$.jstree.defaults&f=$.jstree.defaults.core.dblclick_toggle) – chech

    11
    $('#tree').on('select_node.jstree', function (e, data) { 
        data.instance.toggle_node(data.node); 
    }); 
    

    這對我有效。 oerls解決方案沒有。

    +0

    我也是,謝謝!! –

    -1

    這是標準的功能,當你創建jsTree實例:

    $('#jstree').jstree({ 
        "plugins" : [ "wholerow" ] 
    }); 
    

    jsTree API

    這將永遠切換它的點擊整排的地方分支。

    +0

    不起作用。它只允許選擇完整的行。它不會展開選定文件夾下的文件夾。 –

    1
    $('#jstree').on("select_node.jstree", function (e, data) { 
        $('#jstree').jstree("toggle_node", data.node); 
    }); 
    

    也[一個節點上,當點擊打開分支?]這將工作的

    相關問題