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あなたが探しているものかもしれません...

説明から

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

可視性:非表示または不透明度: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 に答える