jsTree 监听open_node.jstree事件时,怎样获取展开的结点的ID jsTree nodejavascript监听事件open_node 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的这个想法能实现吗?API里貌似没看到相似的。我用e.target.id 得到的是jstree ,两个展开的结点都打印的是这个,整个层的ID,感觉好像这个想法是不可行的呢。有高手指点下么 为啥一定要点+ -就获取id呢?你可以把li全加一个class,比如nodeLi然后获取$(e.targe).attr("classname")来判断是否点击了li,再获取它的id另外我是自己写了个读xml的树形插件,那些图标都是img标签,这样获取各种东西就方便了其实也没多长 点+-获取相应ID之后我就能把相应的图标换成打开的(或者关闭的)文件夹啊,你的方法刚试了$(e.target).attr("classname")获取到的是undefined改成$(e.target).attr("class")获取到的是jstree jstree-1 jstree-default jstree-default-responsive 并不是我命名的class名啊,下面是我所有的代码:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head> <meta charset="utf-8"> <title>jsTree test</title> <link href="../css/bootstrap.min.css" rel="stylesheet"> <link href="../css/style.min.css" rel="stylesheet"></head><body> <div id="jstree"> <ul> <li class="li1" id="root_node_1">Root node 1 <ul> <li class="li2" id="child_node_1">Child node 1 <ul> <li class="li3" id="node_1">node 1</li> <li class="li4" id="node_2">node 2</li> </ul> </li> <li class="li5" id="child_node_2">Child node 2</li> </ul> </li> <li class="li6" id="root_node_2">Root node 2</li> </ul> </div> <div id="event_result"></div> <script src="../js/jquery.min.js"></script> <script src="../js/bootstrap.min.js"></script> <script src="../js/jstree.min.js"></script> <script> $(function () { $("#jstree") .bind("open_node.jstree close_node.jstree", function (e,data) { $("#event_result").html("Last operation: " + $(e.target).attr("class")); }) .jstree({ "plugins" : [ "themes", "html_data" ] }); }); </script></body></html>最近在学jsTree.js这个别人写好的树,所以想用这个实现 js树有啥难的啊。就是遍历不同数据源有点麻烦。我今天刚自己写了个demo,所有图标都是图片,没用list-style-img,方便的很http://yukon12345.com/yukon12345.com/templates/test_xml.html 另外我看了下确实.attr("className")在高版本jquery库里是无效的,改为.attr("class")才可以。你取到了一串classname,是因为class可以同时被设置为很多个,比如class="one two",那么这2个都可以响应css的选择器。如果要判断其中一个,得用正则了。 你的这些功能我也实现了哦,现在就是想实现 结点关闭时,图标显示为关着的文件夹;结点打开时,显示开着的文件夹 这个功能我发现获取的class是整个树这一层的,即id="jsTree"这个层的,不是我想要的<li class="li1" id="root_node_1">Root node 1这个层的,看来还是想法有问题,我再想想 可能用list-style-image当图片,点击它时候确实是不能算点中了li或ul。反正我建议你所有图片都设置成img标签,写在li中。 这些图片并不要我自己写,当我将这个层中的ul li 初始化成一棵树的时候,jsTree.js 和style.css就自动给每个li前面加上图片了,我可以通过设置不显示而不显示图片,现在就是不知道怎么点击的时候换图片了 之前研究的,都忘了,官方文档里的,试试$('#jstree') // listen for event .on('changed.jstree', function (e, data) { var i, j, r = []; for(i = 0, j = data.selected.length; i < j; i++) { r.push(data.instance.get_node(data.selected[i]).text); } $('#event_result').html('Selected: ' + r.join(', ')); }) // create the instance .jstree(); js怎么过滤特定符号 请教高手帮我讲解一下这段代码。 jquery控制行的显示隐藏 (BlueDestiny) 出道javascript的题, 顺带散分~ 能否实现iframe页面半透明显示? 怎么理解这句话:Javascript 是一种安全性的语言,它不允许访问本地的硬盘 急急急!javascript可以压缩或则切割图片吗? 怎么将表单的内容用javascript显示? JAVASCRIPT如何捕获代码中的异常? 新手学java web JQ .after() 和before()的问题 jsTree set_type(obj, type)报not a function错误
有高手指点下么
你可以把li全加一个class,比如nodeLi
然后获取$(e.targe).attr("classname")来判断是否点击了li,再获取它的id
另外我是自己写了个读xml的树形插件,那些图标都是img标签,这样获取各种东西就方便了其实也没多长
你的方法刚试了$(e.target).attr("classname")获取到的是undefined
改成$(e.target).attr("class")获取到的是jstree jstree-1 jstree-default jstree-default-responsive 并不是我命名的class名啊,下面是我所有的代码:<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>jsTree test</title>
<link href="../css/bootstrap.min.css" rel="stylesheet">
<link href="../css/style.min.css" rel="stylesheet">
</head><body>
<div id="jstree">
<ul>
<li class="li1" id="root_node_1">Root node 1
<ul>
<li class="li2" id="child_node_1">Child node 1
<ul>
<li class="li3" id="node_1">node 1</li>
<li class="li4" id="node_2">node 2</li>
</ul>
</li>
<li class="li5" id="child_node_2">Child node 2</li>
</ul>
</li>
<li class="li6" id="root_node_2">Root node 2</li>
</ul>
</div>
<div id="event_result"></div> <script src="../js/jquery.min.js"></script>
<script src="../js/bootstrap.min.js"></script>
<script src="../js/jstree.min.js"></script>
<script>
$(function () {
$("#jstree")
.bind("open_node.jstree close_node.jstree", function (e,data) {
$("#event_result").html("Last operation: " + $(e.target).attr("class"));
})
.jstree({ "plugins" : [ "themes", "html_data" ] });
});
</script>
</body>
</html>
最近在学jsTree.js这个别人写好的树,所以想用这个实现
http://yukon12345.com/yukon12345.com/templates/test_xml.html
你取到了一串classname,是因为class可以同时被设置为很多个,比如class="one two",那么这2个都可以响应css的选择器。如果要判断其中一个,得用正则了。
之前研究的,都忘了,官方文档里的,试试
$('#jstree')
// listen for event
.on('changed.jstree', function (e, data) {
var i, j, r = [];
for(i = 0, j = data.selected.length; i < j; i++) {
r.push(data.instance.get_node(data.selected[i]).text);
}
$('#event_result').html('Selected: ' + r.join(', '));
})
// create the instance
.jstree();