根据我在上一个问题上收到的提示,我遇到了另一个问题。
我有这个清单:
<ul id="treeview">
<li>group1a
<ul>
<li>group11 </li>
</ul>
</li>
<li>group2 </li>
<li>group3 </li>
<li>group4 </li>
<li>group5 </li>
</ul>
我目前正在使用这段JavaScript将cssclass放到我的LI元素上:
<script type="text/javascript">
$().ready(function () {
$("#treeview").treeview();
});
$("#treeview li").click(function (e) {
// Clear all selected states
$('#treeview li').removeClass('nodeselected');
// Set current as selected
$(this).addClass("nodeselected");
});
</script>
我担心的是,当点击LI父级的子节点时,我没有选中它。是否有一些递归方式来实现,或者我应该逐一处理我在树视图中想要的每个级别?
答案 0 :(得分:0)
将此添加到click
函数的末尾:
e.stopPropagation();
事件泡沫起来。当您单击子节点时,它会为它创建一个click事件,然后为每个父节点创建一个click事件 - 当您单击它们时也是如此。 stopPropagation
是阻止该行为的方法(return false;
也可以起作用,但可能阻止其他功能。)
在此处查看此行动:http://jsbin.com/icehe