检查是否隐藏了所有子元素

时间:2012-04-30 10:44:44

标签: jquery visibility

我的脚本有点困在这里:

它是一个复选框,用于过滤所有.notme图像并隐藏其列表项。 问题是现在我无法获得fadeToggle的工作回调函数。 它的行为应该是这样的:

  

如果#list-team-single-container的所有孩子都“没有显示” - 做点什么。

$('#show-only-my-teams').change(function(){
    $('.notme').each(function(){
        $(this).parent().parent().fadeToggle('fast', function(){
        });
    });
}); 

3 个答案:

答案 0 :(得分:63)

if($('#list-team-single-container').children(':visible').length == 0) {
   // action when all are hidden
}

答案 1 :(得分:10)

:visible jQuery选择器可能就是你要找的......

来自description

  

如果元素占用文档中的空间,则认为元素是可见的。   可见元素的宽度或高度大于零。

     

具有可见性的元素:隐藏或不透明度:0被视为可见,   因为他们仍然在布局中消耗空间。在动画期间   隐藏元素,该元素被认为是可见的,直到结束   动画片在显示元素的动画期间,元素是   被认为在动画开始时可见。

http://api.jquery.com/visible-selector/


$('#list-team-single-container').children(':visible');

该行代码将返回#list-team-single-container可见的所有子元素。

$('#list-team-single-container').children(':visible').length;

该代码行将返回可见的#list-team-single-container的子元素数

答案 2 :(得分:9)

如果没有看到你的标记很难具体,但我想这样做:

var isVisible = 0;

$('.notme').each( function() {
    if( $(this).is(":visible") {
         isVisible++;
    }
});

if ( isVisible == 0 )
    // do something