8

非表示の要素を非表示にするのはどれほど悪いことですか?

要素#myelementが隠されているとしましょう$('#element').hide()。それは悪いことですか?最初に表示されるかどうかを確認する必要がありますか?

ありがとう!

4

5 に答える 5

15

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" ) );
    }

したがって、追加のチェックを実行する必要はありません。手動でチェックすると、パフォーマンス (および実際の可読性) が低下します。

于 2012-11-02T08:37:03.360 に答える
0

hiding要素が既に存在するかどうかを確認する必要はありませんが、要素が存在するかどうかを確認する必要はありませんhidden

if ($('your-element').is(':hidden')) {
$('your-element').show();
} else {
//do something else
}
于 2012-11-02T08:43:53.960 に答える
0

すでに非表示になっている要素を非表示にしても、何も起こりません。

それが「悪い」唯一の方法は、実行する必要のないコードを実行していることです。

is() を使用して非表示になっているかどうかを確認できます。

if(!$("my-element").is(":visible")) {
    $("my-element").hide();
})
于 2012-11-02T08:36:44.950 に答える
0

要素を非表示にする前に、要素の可視性を確認することをお勧めします。

 $('#element').hide();

Internet Explorer (IE9) でいくつかの問題が発生します。ページが正しく読み込まれないことがあります。一部のコンテンツはページから失われます。

次のコードははるかに優れています。

if(!$("#myelement").is(":visible")) {
    $("#myelement").hide();
})
于 2012-11-02T09:14:06.303 に答える