时间:13-05-09 栏目:EasyUI 作者:zongyan86 评论:0 点击: 5,404 次
比如说 ,你现在有两棵easyui-tree,你要对节点进行点击,获取node;
很多人会这么写代码: js: $(".easyui-tree").tree({
onClick: function (node) {
var node = $(this).tree('getSelected');
console.info(node);
}
}); html: <div id="acc1" title="信息管理" iconcls="application_osx_split" style="overflow: auto;"> <ul id='tt1' class='easyui-tree'> <li iconcls='application_osx_link'> <div class="aa2" icon='application_osx_link' ref='/Permission/Bulletin.aspx'> 公告管理</div> </li> </ul> </div>
<br />
<div id="acc2" title="系统管理" iconcls="application_osx_error" style="overflow: auto;"> <ul id='tt2' class='easyui-tree'> <li iconcls='basket_put'> <div class="aa2" icon='basket_put' ref='/Permission/Myset.aspx'>个性化设置</div> </li> </ul> </div>
结果你发现,就第一棵树的node可以获取到,第二棵node的节点都为null。你就奇怪了,类选择器,怎么就不能操作第二棵树呢。是的,就是不行。
解决方法是:
$("#tt0").tree({
onClick: function (node) {
alert('a');
var node = $(this).tree('getSelected'); //tt1是你的树的id
console.info(node);
}
});
$("#tt1").tree({
onClick: function (node) {
alert('a');
var node = $(this).tree('getSelected'); //tt1是你的树的id
console.info(node);
}
});
你必须得每棵树都去实例化它。
当然,上面的代码太过繁琐了。
那就用下面的代码吧。
$(".easyui-tree").each(function () {
$(this).tree({
//这个事件其实是判断有子节点,就不让它触发。这个可以看我之前combotree的那边文章,因为combotree是继承tree的。
onBeforeSelect: function (node) {
if (!$(this).tree('isLeaf', node.target)) {
return false;
}
},
onClick: function (node) {
var node = $(this).tree('getSelected'); //tt1是你的树的id
//do something
}
});
}); web开发技术
声明: 本文由( zongyan86 )原创编译,转载请保留链接: EasyUI 多棵树问题