どっちがいいの?.hide()
は書き出すよりも速いです.css("display", "none")
が、違いは何ですか?また、どちらも実際にHTML要素に対して何をしているのですか?
どっちがいいの?.hide()
は書き出すよりも速いです.css("display", "none")
が、違いは何ですか?また、どちらも実際にHTML要素に対して何をしているのですか?
回答:
.hide()に関するjQueryページから:
「一致した要素はすぐに非表示になり、アニメーションは表示されません。これは.css( 'display'、 'none')を呼び出すのとほぼ同じですが、表示プロパティの値がjQueryのデータキャッシュに保存され、後で表示できるようになります。初期値に復元します。要素の表示値がインラインの場合、非表示にして表示すると、要素は再びインラインで表示されます。
したがって、以前の値に戻すことができることが重要である場合は、以前の状態が記憶されるため、display
より適切に使用できhide()
ます。それ以外は違いはありません。
jQueryコードを見ると、次のことが起こります。
hide: function( speed, easing, callback ) {
if ( speed || speed === 0 ) {
return this.animate( genFx("hide", 3), speed, easing, callback);
} else {
for ( var i = 0, j = this.length; i < j; i++ ) {
var display = jQuery.css( this[i], "display" );
if ( display !== "none" ) {
jQuery.data( this[i], "olddisplay", display );
}
}
// Set the display of the elements in a second loop
// to avoid the constant reflow
for ( i = 0; i < j; i++ ) {
this[i].style.display = "none";
}
return this;
}
},
彼らは同じものです。.hide()
jQuery関数を呼び出し、それにコールバック関数を追加できます。したがって、.hide()
たとえばアニメーションを追加できます。
.css("display","none")
要素の属性をに変更しますdisplay:none
。これは、JavaScriptで以下を実行する場合と同じです。
document.getElementById('elementId').style.display = 'none';
.hide()
この関数は、明らかに、コールバック関数、スピード、などのためにそれをチェックして実行するために多くの時間がかかります...
基本的な非表示メソッドを使用しても違いはありません。しかし、jqueryは、要素に効果を与えるさまざまな非表示メソッドを提供します。詳細な説明については、以下のリンクを参照してください: Jqueryで非表示にするための効果