28

我的脚本有点卡在这里:

它是一个过滤所有.notme图像并隐藏它的列表项的复选框。问题是现在我无法为fadeToggle. 它的行为应该是这样的:

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

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

3 回答 3

75
if($('#list-team-single-container').children(':visible').length == 0) {
   // action when all are hidden
}
于 2012-04-30T10:50:00.980 回答
10

jQuery 选择器:visible可能是您正在寻找的...

描述

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

具有 visibility: hidden 或 opacity: 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

于 2012-04-30T10:46:15.333 回答
9

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

var isVisible = 0;

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

if ( isVisible == 0 )
    // do something
于 2012-04-30T10:52:18.463 回答