简单的jQuery树问题与更多的节点

Simple jQuery tree trouble with more nodes

本文关键字:节点 问题 jQuery 简单      更新时间:2023-09-26

这是我的例子。

$(function() {
    $('li > ul').each(function() {
        var parent_li = $(this).parent('li');
        var sub_ul = $(this).remove();
        parent_li.click(function() {
            sub_ul.toggle();
        });
        parent_li.append(sub_ul);
    });
    $('ul ul').hide();
});

如果要打开第三个节点,您会注意到问题。由于它在每次单击时都会切换所有内容,所以我尝试使用有点检查它是否有父级只隐藏孩子等,但是它根本不起作用...

欢迎任何建议。

这应该有效:

$(window).load(function() {
    $('li').click(function(evt) {                   
        $(this).children('ul').toggle();
        evt.stopPropagation(); //Stop bubbling upwards, so our parent doesnt recieve this click!
    });
});

每当您单击LI时,您都想切换孩子。问题是事件冒泡,您的点击在最里面的元素上触发,但随后冒泡到父元素。这将按预期关闭元素。

这就是为什么我们在冒泡到达那里之前停止冒泡,这样父母就不会得到点击,我们保持打开状态。