2013-04-15 90 views
1

我想要显示一个.folder,当它点击并隐藏所有其他内容时。就像一个文件浏览器。显示小孩并隐藏父母

+0

我能问你为什么不能简单地用一个文件浏览器?如果您正在与用户的硬盘进行交互,则应该有可用的IO类来显示简单的文件浏览器。 – Jeff

+0

根本不与用户的硬盘进行交互。从服务器端列出文件。 – Kivylius

+0

http://jsfiddle.net/什么不工作? – DerStoffel

回答

0
$('ul li.folder').on('click',function(e){ 

    $(this).siblings('li').toggle(); 
    $(this).children().toggle(); 
    e.stopPropagation(); 
}); 

这应该工作。

1

你可以尝试使用jQuery siblings() selector.

$('.folder').on('click',function(e){ 
    $(this).children().toggle(); 
    $(this).siblings('li.folder').children().toggle(); 
    e.stopPropagation(); 
}); 
+0

这几乎完美,但不适用于2/3/4 ..级别深的列表 – Kivylius

+0

玩它。也许你需要使用一些其他选择器(.parent()?.children()?你看到的那种行为是不是有意的?尝试一下,这很有趣。 – Jeff

0

Sample

//toggle children and siblings 
$('.folder').on('click',function(e){ 
    $(this).children().toggle(); 
    $(this).siblings().toggle(); 
    e.stopPropagation(); 
}); 
//cancel file clicks 
$('.file').on('click', function(e) { 
    e.stopPropagation(); 
    return false; 
});