获取图标指示器指向正确的方向

时间:2013-11-19 17:40:44

标签: jquery

我有一个嵌套列表,每次扩展包含子列表的列表项时,图标三角形都需要打包。折叠时,图标需要指向右侧。

单击兄弟姐妹应仅扩展该级别,但会折叠所有其他级别。换句话说,展开/折叠正常工作,无需更改。我只需要帮助图标。

这是我的js代码

    $('ul').hide();
    $('#tree').show();

    $('#tree li').click(function(e) {
        e.stopPropagation();
        var $this = $(this);

        $this.children('ul').find('ul').slideUp().end().slideToggle();
        $(this).find('span.uico').first().toggleClass('ui-icon-triangle-1-e ui-icon-triangle-1-s');
        $this.siblings().children('ul:visible').slideUp();

        if ($this.siblings().children('ul:visible')) {
            $(this).find('ui-icon-triangle-1-s').removeClass('ui-icon-triangle-1-s').addClass('ui-icon-triangle-1-e');
        }

    });

1 个答案:

答案 0 :(得分:0)

这是一个问题:

当你这样做时:

$this.siblings().children('ul:visible').slideUp();

会隐藏所有$this.siblings().children('ul:visible'),以便它们不再可见。

然后,当你这样做时:

if ($this.siblings().children('ul:visible')) { /*...*/ }

没有任何可见的子元素,因此条件将始终为0。