3

I love using the hide() and show() methods, but I've come across someone's scripting where they never use it.
Instead I see them using attr() for anything related to display.

$("#element").attr("style", "visibility:hidden");
$("#element").attr("style", "visibility:visible");

Is this just purely preferential?
Or is it more beneficial to use one vs the other?

4

3 に答える 3

3

違いがあります。.hide()たとえば、次のとおりです。

これは.css('display', 'none')、(...)を呼び出すこととほぼ同じです。

visibilitydisplayは 2 つの異なる CSS プロパティです。を使用visibility: hidden;すると、レイアウトに要素用のスペースが残されますが、要素は表示されません。

.attr("style", '...')もう 1 つの (マイナーな) 違いは、要素に設定されている可能性のある他のすべてのスタイルを呼び出しがオーバーライドすることです。

于 2011-06-01T21:05:26.747 に答える
1

確かに違いがあります。show()メソッドとhide()メソッドを使用すると、必要に応じて、表示または非表示の期間を設定してアニメーションを使用できます。また、hideは、現在の表示設定(インライン、ブロックなど)を追跡します。http://api.jquery.com/hide/

.css('display'、'none')または.css('display'、'block')を使用する方がおそらく高速ですが、提供される機能は少なくなります。

show()/ hidden()または.css()を使用して表示を制御する場合は、実行しようとしていることに基づいて優先的に表示されます。

もう1つ注意してください。TheDramaLamaによると、hide()はソースコードから要素を削除します。TheDramaLamaが意味するのは、位置的に削除することですが、ソースコード(別名DOM)には残ります。

于 2011-06-01T21:11:03.860 に答える
1

Hide() と show() は、ソース HTML から要素を効果的に削除します。

可視性ルールは、要素のコンテンツを表示できるかどうかにのみ影響します。それらが占めるスペースはまだ予約されており、空白の場所になります。

于 2011-06-01T21:06:27.730 に答える