jQuery1.3.2から「:visible」と「:hidden」セレクタの仕様が変わって、cssでvisibility:hiddenしただけの要素は「:visible」として扱われるようになった。
jQuery1.3.1以前
要素のCSSを見て、"display"が"none"ではなく、"visibility"が"hidden"ではなく、input要素であればtype属性が"hidden"でないことjQuery1.3.2以降
ブラウザがoffsetWidthおよびoffsetHeightにゼロより大きい値を返すことこの変更により、対象要素のdisplayが"none"の場合はもちろん、親要素のdisplayが"none"であったり、要素のwidthやheightがゼロであった場合なども、":hidden"として検出されるようになりました。
でもこの仕様だと「visibility:hiddenだって見えないのにhiddenじゃねーのかよ」という違和感があるので、visibility:hidden時にはhidden判定される用のセレクタを用意してみた。
#既存の「:visible」「:hidden」は、それはそれで使う場合もあるだろうから書き換えではなく追加。
参考:JavaScript++かも日記: 【jQuery】自作セレクタの追加
$.extend($.expr[':'], { _visible: function(elem){ if($.expr[':'].hidden(elem)) return false; if($.curCSS(elem, 'visibility') == 'hidden') return false; return true; } , _hidden: function(elem){ if($.expr[':'].hidden(elem)) return true; if($.curCSS(elem, 'visibility') == 'hidden') return true; return false; } });
これで以下のようなコードで使えるように。
$('p:_visible') //表示されているpタグ。 $('p:_hidden') //表示されていないpタグ。
Prev / Next in same category
Comment Form
Trackbacks (0)
トラックバックはありません。
Comments (9)
それは多くの情報が含まれているように私は、私にとって非常に有用なこの記事を見つけることが嬉しいです。
not to say that employers aren’t looking for them; they are. But the numbers show that old-guard certifications are still the ones employers l
macだとコピーとペーストのコマンドがそれぞれ『pbcopy』と『pbpaste』なので、
変換したい文字列をコピーして、
l直書きでネスト作るこ
画像の一部を任意のサイズに切り抜くjQueryプラグイン作ったー。
ひとまず、IE6~、Firefox、Google Chromeでは動作確認できました
フラグとほぼ同じですが, 各ループの最後に変数 $_ の値を出力するようになります。
宝のスーパーコピーめでたい(ミュウミュウ)。
jQuery1.3.2から「:visible」と「:hidden」セレクタの仕様が変わって、cssでvisibility:hiddenしただけの要素は「:visible」として扱われるようになった。
宝のスーパーコピーめでたい(ミュウミュウ)。