如何修改jstree以在选择时显示节点名称

时间:2013-08-24 19:39:16

标签: javascript jquery jstree

在这个小提琴中:http://jsfiddle.net/ak4Ed/当选择一个节点并按下键'c'时,所选节点ID将显示为弹出窗口。

如何修改代码,以便在选择节点时显示弹出窗口,而不是依赖用户按“c”热键?

阅读jstree文档似乎没有解释? :http://www.jstree.com/documentation/core

这是jsfiddle代码:

<div id="demo1" style="height:100px;">
     <ul>
         <li id="node_1_id">
             <a>Root node 1</a>
             <ul>
                 <li id="child_node_1_id">
                     <a>Child node 1</a>
                 </li>
                 <li id="child_node_2_id">
                     <a>Child node 2</a>
                 </li>
             </ul>
         </li>

     </ul>
     <ul>
                    <li><a>Team A's Projects</a>
                        <ul>
                        <li><a>Iteration 1</a>
                            <ul>
                                <li><a>Story A</a></li>
                                <li><a>Story B</a></li>
                                <li><a>Story C</a></li>
                            </ul>
                            </li>
                        <li><a>Iteration 2</a>
                        <ul>
                            <li><a>Story D</a></li>
                              </ul>
                            </li>
                        </ul>
                    </li>
                </ul>
 </div>


$(function() {

    $("#demo1").jstree({
                "hotkeys": {
                    "c" : function(event) { 
                        var node = this._get_node();
                        if(!node) {
                            alert("no node selected");   
                        }
                        else {
                            alert("selected node: "+node.attr("id"));
                        }
                    },
                    "d": function(event) {
                        var node = this._get_node(this.data.ui.hovered);
                        if(!node) {
                            alert("no node hovered");    
                        }
                        else {
                            alert("hovered node: "+node.attr("id"));
                        }
                    }
                },
        "plugins": ["ui", "html_data", "themes", "hotkeys"]
    });
});

1 个答案:

答案 0 :(得分:1)

有一个事件select_node.jstree。选择节点时会触发它。我没有在文档中找到它(奇怪的......)。

然后,您可以按类jstree-clicked找到所选节点。

我更新了你的jfiddle:http://jsfiddle.net/ak4Ed/118/