web-dev-qa-db-ja.com

すべての子要素が非表示かどうかを確認します

私はスクリプトで少し立ち往生しています:

すべての.notme画像をフィルタリングし、そのリスト項目を非表示にするチェックボックス。問題はfadeToggleの有効なコールバック関数を取得できないことです。次のように動作するはずです:

#list-team-single-containerのすべての子が「表示なし」の場合-何かをします。

$('#show-only-my-teams').change(function(){
    $('.notme').each(function(){
        $(this).parent().parent().fadeToggle('fast', function(){
        });
    });
}); 
27
ggzone
if($('#list-team-single-container').children(':visible').length == 0) {
   // action when all are hidden
}
67
thecodeparadox

:visible jQueryセレクターは、あなたが探しているものかもしれません...

説明 から

ドキュメント内のスペースを消費する場合、要素は可視であると見なされます。表示される要素の幅または高さはゼロより大きくなっています。

可視性:非表示または不透明度: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の-​​子要素の数を返します。

10
Lix

あなたのマークアップを見ずに特定することは難しいですが、私はこのようなことをすることを想像します:

var isVisible = 0;

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

if ( isVisible == 0 )
    // do something
9
rgin