Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果单击文件夹图标而不仅仅是三角形图标,我如何让jstree关闭/打开_Javascript_Html_Jstree - Fatal编程技术网

Javascript 如果单击文件夹图标而不仅仅是三角形图标,我如何让jstree关闭/打开

Javascript 如果单击文件夹图标而不仅仅是三角形图标,我如何让jstree关闭/打开,javascript,html,jstree,Javascript,Html,Jstree,我在html页面上使用jstree,我希望能够通过单击行中任意位置(即小三角形图标、文件夹图标和文件夹名称)来打开和关闭树的部分,而不必单击小三角形图标 下面是一个完整的自包含示例来演示此问题。我想通过单击文件夹图标或“C:\Music”来关闭C:\Music文件夹,这是可能的吗 <!DOCTYPE html><html xmlns="http://www.w3.org/1999/html" xml:lang="en" lang="en"> <head><

我在html页面上使用jstree,我希望能够通过单击行中任意位置(即小三角形图标、文件夹图标和文件夹名称)来打开和关闭树的部分,而不必单击小三角形图标

下面是一个完整的自包含示例来演示此问题。我想通过单击文件夹图标或“C:\Music”来关闭C:\Music文件夹,这是可能的吗

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/html" xml:lang="en" lang="en">
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="../style/songkong.css">
 <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css" />
<script type="text/javascript" src="http://static.jstree.com/v.1.0pre/jquery.cookie.js"></script>
<script type="text/javascript" src="http://static.jstree.com/v.1.0pre/jquery.hotkeys.js"></script>
<script type="text/javascript" src="http://static.jstree.com/v.1.0pre/jquery.jstree.js"></script>
<script type="text/javascript" class="source below">
$(function () {
$("#songchanges")
.jstree({
"plugins" : ["themes","html_data","ui","crrm","hotkeys"],
"core" : { "initially_open" : [ "phtml_1" ] }
})
.bind("loaded.jstree", function (event, data) {})
;
$("#songchanges").bind("open_node.jstree", function (e, data) {
data.inst.select_node("#phtml_1", true);
});
});
</script></head>
<body>
<div id="songchanges"><ul>
<li id="phtml_1">
<a href="#">C:\Music\</a>
<ul>
<li id="phtml_2">
<a href="#">KungFooFighting1.mp3</a>
</li>
<li id="phtml_3">
<a href="#">KungFooFighting2.mp3</a>
</li>
</ul>
</li>
</ul>
</div>

</body>
</html>

$(函数(){
$(“歌曲变化”)
jstree先生({
“插件”:[“主题”、“html_数据”、“ui”、“crrm”、“热键”],
“核心”:{“初始开放”:[“phtml_1”]}
})
.bind(“loaded.jstree”,函数(事件,数据){})
;
$(“#songchanges”).bind(“open#node.jstree”,函数(e,数据){
data.inst.select_节点(“phtml_1”,true);
});
});
由于您已经使用了“ui”插件,您可以将事件处理程序附加到
选择_node.jstree event
。然后使用内部处理程序
$(this.jstree('toggle_node',data.rslt.obj[0])
打开和关闭特定树节点

完整的代码如下所示:

$("#songchanges").bind("select_node.jstree", function (e, data) {
  $(this).jstree('toggle_node', data.rslt.obj[0]);
});
jsTree 3.3.1和IE7

用keydown为我工作

.bind("select_node.jstree", function (e, data) {
        var e = jQuery.Event("keydown");
        e.which = 39; // to right
        $('#myjstree a[id=' + data.node.id + '_anchor]').trigger(e);

Thx@user2988142但似乎对我不起作用现在我根本无法打开树它似乎我需要使用wholerow插件,但没有在jstree v1中实现,v2出现问题将创建一个新问题您应该删除
data.inst.select_节点(“phtml_1”,true)
打开节点.jstree
处理程序。因为每次你打开它,它都会关闭树。完全可以工作的示例-感谢它的完美工作,jsbin.com看起来也是一个有用的工具