2012-04-08 10 views

答えて

8

私はZeptoを使ったことがない、しかし:

.css('display') !== 'none' 

はおそらく動作します。 Here's a demo.

+0

質問は要素が隠されていないかどうか尋ねません。要素が 'visibility:hidden'に設定されている場合はどうなりますか? – hohner

+0

@minitechニース/ありがとう - 私はそれになると思った。 Zeptoに別の方法が組み込まれているかどうかはわかりませんでした。Bonzo(https://github.com/ded/bonzo)は、 '.toggle()'メソッドのソースを見れば基本的に同じことをします。それは、ネイティブ 'el.style.display!== 'none''と、幅や高さがあるかどうかをチェックします。 – ryanve

+1

@Jamie "http://api.jquery.com/visible-selector/によると、まだレイアウト内のスペースを消費しているため、' visibility:hidden'または 'opacity:0'の要素は可視と見なされます。 – ryanve

-1

について

.css('display') === 'block' 

や、minitechが示唆されているようにする方法:

.css('display') !== 'hidden' 

あなたが本当には、これらの擬似セレクターを使用する必要がある場合、あなたは常にimplement them manuallyことができます。

+2

Zepto有効にするセレクタにモジュールを含めることができます。 – Ryan

+0

+1をgist =へ) – ryanve

+2

目に見えない要素には 'display = none'がありません。' display = hidden' – enyo

1

私はZeptoとあまり慣れていないんだ、しかし私はあなただけの検出のいくつかのフォームを行うための基本的なJavaScriptを使用することができます想像:

function isVis(ele) { 
    if(ele.css('display')!='none' && ele.css('visibility')!='hidden' && ele.height()>0) { 
     return(true); 
    } else { 
     return(false); 
    } 
} 

次に使用中:

var div=$('#div_id'); 
if(isVis(div)) { 
    // Element is visible 
} else { 
    // Element in not visible 
} 
+1

' 「ブロック」は表示可能な「表示」タイプではありません。 'inline'、' inline-block'、 'table'、' table-row'、 'table-cell' ...あなたは画像を取得します。 – Ryan

+0

あなたはそうです、私はそれを逆にしました。私はそれを修正してみましょう... – faino

+0

@minitechはディスプレイの種類については正しいです。ハックとして、これはおそらく最善の解決策だと思います – hohner

関連する問題