Unterschied zwischen jQuery .hide () und .css ("display", "none")
Gibt es einen Unterschied zwischen
jQuery('#id').show() and jQuery('#id').css("display","block")
und
jQuery('#id').hide() and jQuery('#id').css("display","none")
InformationsquelleAutor der Frage Sashi Kant | 2012-11-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
display
Eigenschaft kann viele mögliche Werte, unter denenblock
inline
inline-block
und viele mehr.Den
.show()
Methode nicht unbedingt zublock
sondern setzt es zu dem, was Sie definiert es (wenn überhaupt).In der jQuery-source-code, können Sie sehen, wie Sie die Einstellung der
display
Eigenschaft auf "" (eine leere Zeichenfolge), um zu überprüfen, was es war, bevor irgendein jQuery-manipulation: wenig link.Auf der anderen Seite, das ausblenden erfolgt über
display: none;
so können Sie prüfen.hide()
und.css("display", "none")
entspricht einem gewissen Punkt.Empfohlen
.show()
und.hide()
sowieso zu vermeiden gotcha (außerdem sind Sie kürzer).InformationsquelleAutor der Antwort Chris
Unterschied zwischen show() und css({'display':'block'})
Vorausgesetzt, Sie haben diese am Anfang:
wenn Sie anrufen:
erhalten Sie:
während:
tut:
so, ja, es ist ein Unterschied.
Unterschied zwischen hide() und css({'display':'none'})
gleiche wie oben, aber ändern Sie diese in hide() und display':'none'......
Ein weiterer Unterschied
Wenn
.hide()
heißt der Wert der display-Eigenschaft gespeichert ist, die jQuery-Daten-cache, so dass, wenn.show()
aufgerufen wird, wird die ursprüngliche Anzeige wiederhergestellt!InformationsquelleAutor der Antwort Talha
Ja, es gibt einen Unterschied in der Leistung der beiden:
jQuery('#id').show()
ist langsamer alsjQuery('#id').css("display","block")
wie im ersten Fall zusätzliche Arbeit getan werden muss für das abrufen der ursprüngliche Zustand aus dem jquery-cache-Anzeige ist nicht ein binäres Attribut kann es seininline
,block
,none
table
usw.ähnlich ist der Fall mit
hide()
Methode.Finden Sie unter: http://jsperf.com/show-vs-addclass
InformationsquelleAutor der Antwort aquasan
kein Unterschied
Gleiche zu zeigen
InformationsquelleAutor der Antwort Arsen Mkrtchyan
Ja, es ist ein Unterschied.
jQuery('#id').css("display","block")
wird immer das element, das Sie wollen, um zu zeigen, wie block.jQuery('#id').show()
wird et wird, um welche Darstellungsart es zunächst war, display: inline zum Beispiel.Sehen Jquery Doc
InformationsquelleAutor der Antwort Jonas Ibsen
Können Sie einen Blick auf die Quellcode (hier ist es v1.7.2).
Außer für die animation, die wir setzen können, diese auch in Erinnerung behalten den alten Stil (das ist nicht in allen Fällen
block
es kann auch seininline
table-cell
...).InformationsquelleAutor der Antwort Samuel Caillerie
sehen http://api.jquery.com/show/
Ohne Parameter auf, die .show () - Methode ist der einfachste Weg, um ein element:
$('.target').show();
Werden die übereinstimmenden Elemente werden sofort aufgedeckt, ohne animation. Dies entspricht etwa der Aufruf .css('display', 'block'), außer, dass die display-Eigenschaft wird wiederhergestellt, was auch immer es anfangs war. Wenn ein element hat einen Wert anzeigen, inline -, dann ist ein-und ausgeblendet, es wird wieder angezeigt, inline.
InformationsquelleAutor der Antwort Corinne Kubler