非表示の要素を非表示にするのはどれほど悪いことですか?
要素#myelement
が隠されているとしましょう$('#element').hide()
。それは悪いことですか?最初に表示されるかどうかを確認する必要がありますか?
ありがとう!
jQuery は要素が表示されているかどうかをチェックし、表示されている場合にのみ非表示にします: https://github.com/jquery/jquery/blob/master/src/css.js#L78
} else if ( !values[ index ] && !isHidden( elem ) ) {
jQuery._data( elem, "olddisplay", curCSS( elem, "display" ) );
}
したがって、追加のチェックを実行する必要はありません。手動でチェックすると、パフォーマンス (および実際の可読性) が低下します。
hiding
要素が既に存在するかどうかを確認する必要はありませんが、要素が存在するかどうかを確認する必要はありませんhidden
。
if ($('your-element').is(':hidden')) {
$('your-element').show();
} else {
//do something else
}
すでに非表示になっている要素を非表示にしても、何も起こりません。
それが「悪い」唯一の方法は、実行する必要のないコードを実行していることです。
is() を使用して非表示になっているかどうかを確認できます。
if(!$("my-element").is(":visible")) {
$("my-element").hide();
})
要素を非表示にする前に、要素の可視性を確認することをお勧めします。
$('#element').hide();
Internet Explorer (IE9) でいくつかの問題が発生します。ページが正しく読み込まれないことがあります。一部のコンテンツはページから失われます。
次のコードははるかに優れています。
if(!$("#myelement").is(":visible")) {
$("#myelement").hide();
})