82

間に違いはありますか

jQuery('#id').show() and jQuery('#id').css("display","block")

jQuery('#id').hide() and jQuery('#id').css("display","none")
4

7 に答える 7

97

jQuery('#id').css("表示","ブロック")

プロパティには、、、 など、多くdisplay可能な値を設定できます。blockinlineinline-block

この.show()メソッドは、必ずしも に設定するわけではありませんがblock、定義したものにリセットします (存在する場合)。

jQuery ソース コードでは、displayプロパティを "" (空の文字列) に設定して、jQuery 操作前の状態を確認する方法を確認できます: little link

一方、非表示は を介し​​て行われるため、ある点と同等とdisplay: none;見なすことができます。.hide().css("display", "none")

とにかく、落とし穴を避けるために.show()andを使用することをお勧めします(さらに、それらは短くなります)。.hide()

于 2012-11-26T10:04:01.680 に答える
34

show()とcss({'display':'block'})の違い

あなたが最初にこれを持っていると仮定して:

<span id="thisElement" style="display: none;">Foo</span>

電話をかけるとき:

$('#thisElement').show();

あなたが得るでしょう:

<span id="thisElement" style="">Foo</span>

その間:

$('#thisElement').css({'display':'block'});

します:

<span id="thisElement" style="display: block;">Foo</span>

ですから、違いがあります。

hidden()とcss({'display':'none'})の違い

上記と同じですが、これらをhide()に変更し、':'none'.....を表示します。

もう1つの違い When.hide()が呼び出されると、displayプロパティの値がjQueryのデータキャッシュに保存されるため、.show()が呼び出されると、初期の表示値が復元されます。

于 2012-11-26T10:17:10.760 に答える
6

はい、両方のパフォーマンスに違いがあり ます。表示はバイナリ属性ではないため、jqueryキャッシュから初期状態を取得するために追加の作業を行う必要があるため、前の場合よりjQuery('#id').show()も遅くなります。メソッドの場合です。jQuery('#id').css("display","block")inlineblocknonetablehide()

参照: http: //jsperf.com/show-vs-addclass

于 2013-02-28T21:56:56.857 に答える
4

変わりはない

パラメーターを指定しない .hide() メソッドは、要素を非表示にする最も簡単な方法です。

$('.target').hide(); 一致した要素は、アニメーションなしですぐに非表示になります。これは .css('display', 'none') の呼び出しとほぼ同じですが、display プロパティの値が jQuery のデータ キャッシュに保存されるため、後で表示を初期値に戻すことができます。要素の表示値が inline の場合、非表示にしてから表示すると、再びインラインで表示されます。

ショーについても同じ

于 2012-11-26T10:03:48.717 に答える
3

はい、違いがあります。

jQuery('#id').css("display","block")ブロックとして表示したい要素を常に設定します。

jQuery('#id').show()たとえば、最初はどのような表示タイプであったか、display: inline になります。

Jquery ドキュメントを参照してください

于 2012-11-26T10:05:41.710 に答える
2

ソースコードを見ることができます(ここでは v1.7.2 です)。

設定できるアニメーションを除いて、これも古い表示スタイルをメモリに保持します (すべての場合ではなく、 、 、 ... の場合blockもあります)。inlinetable-cell

于 2012-11-26T10:03:52.547 に答える
1

http://api.jquery.com/show/を参照してください

パラメーターなしの .show() メソッドは、要素を表示する最も簡単な方法です。

$('.target').show();

一致した要素は、アニメーションなしですぐに表示されます。これは .css('display', 'block') の呼び出しとほぼ同じですが、表示プロパティが最初の状態に復元される点が異なります。要素の表示値が inline の場合、非表示にしてから表示すると、再びインラインで表示されます。

于 2012-11-26T10:06:58.107 に答える