Grundsätzlich möchte ich feststellen können, ob ein Element gerade über das Attribut “display:block” angezeigt oder ausgeblendet wird?
Verwenden
if( $("#test").css('display') == 'block') {
Ich bin mir ziemlich sicher .css(), die einen berechneten Wert zurückgibt, gibt immer ein Ergebnis in Kleinbuchstaben zurück – die Dokumentation sagt dazu nichts aus. Um ganz sicherzugehen, könnten Sie a
während Sie sich darauf verlassen können display Beachten Sie, dass einige CSS-Eigenschaften zuverlässige Ergebnisse liefern werden nicht immer so angezeigt, wie sie definiert wurden. Zum Beispiel
a { color: red }
wird sich herausstellen rgb(255,0,0); bei Abfrage mit .css().
@Tom Sie prüfen, ob test1 hat display: none was es nicht hat. Meinst du display != 'block'?
– Pekka
8. Mai 2011 um 17:49 Uhr
@Pekka – Danke für die Antwort 🙂 Nein, ich wollte überprüfen, ob #test block ist – und wenn es block ist, dann test1 anzeigen?
– Tom
8. Mai 2011 um 17:49 Uhr
@Tom ja, jetzt verstehe ich. Versuche dies: jsfiddle.net/eEF9Y/4 Sie haben jQuery im Menü links nicht ausgewählt, der Code funktioniert.
– Pekka
8. Mai 2011 um 17:51 Uhr
Sie können isvisible und is hidden auch verwenden
if ( $('#test').is(':visible')){
Dies funktioniert tatsächlich besser, wenn Sie die Sichtbarkeit bestimmen möchten, +1
– Pekka
8. Mai 2011 um 17:10 Uhr
Das ist sehr interessant. Ich habe versucht, einige Videos zu pausieren, die auf Mobilgeräten durch eine Medienabfrage ausgeblendet wurden, die display:none; zu ihnen, aber tröstend gab $(elm).css(‘display’) ‘block’ zurück, was ihr Standardwert war. Ihre Antwort hat es ihnen angetan. Danke vielmals!
– Rorok_89
21. März 2018 um 11:34 Uhr
Ich denke, die einzige Möglichkeit, dies zu testen, besteht darin, mit tatsächlichen Werten zu vergleichen:
function displayHidden(elem) {
return $(elem).css('display') === 'hidden';
}
12577700cookie-checkFeststellen, ob die CSS-Eigenschaft auf einen bestimmten Wert gesetzt ist?yes