如何在jQuery树视图中检索单击的元素(第2章)?

时间:2010-01-12 09:18:51

标签: jquery treeview

根据我在上一个问题上收到的提示,我遇到了另一个问题。

我有这个清单:

<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父级的子节点时,我没有选中它。是否有一些递归方式来实现,或者我应该逐一处理我在树视图中想要的每个级别?

1 个答案:

答案 0 :(得分:0)

将此添加到click函数的末尾:

e.stopPropagation();

事件泡沫起来。当您单击子节点时,它会为它创建一个click事件,然后为每个父节点创建一个click事件 - 当您单击它们时也是如此。 stopPropagation是阻止该行为的方法(return false;也可以起作用,但可能阻止其他功能。)

在此处查看此行动:http://jsbin.com/icehe