我有一个嵌套列表,每次扩展包含子列表的列表项时,图标三角形都需要打包。折叠时,图标需要指向右侧。
单击兄弟姐妹应仅扩展该级别,但会折叠所有其他级别。换句话说,展开/折叠正常工作,无需更改。我只需要帮助图标。
这是我的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');
}
});
答案 0 :(得分:0)
这是一个问题:
当你这样做时:
$this.siblings().children('ul:visible').slideUp();
会隐藏所有$this.siblings().children('ul:visible')
,以便它们不再可见。
然后,当你这样做时:
if ($this.siblings().children('ul:visible')) { /*...*/ }
没有任何可见的子元素,因此条件将始终为0。