8662 Stimmen

Wie prüfe ich, ob ein Element in jQuery ausgeblendet ist?

Ist es möglich, die Sichtbarkeit eines Elements umzuschalten, indem man die Funktionen .hide() , .show() ou .toggle() ?

Wie würden Sie testen, ob ein Element visible ou hidden ?

68 Stimmen

Es ist erwähnenswert (auch nach all dieser Zeit), dass $(element).is(":visible") funktioniert für jQuery 1.4.4, aber nicht für jQuery 1.3.2, unter Internet Explorer 8 . Dies kann getestet werden mit Tsvetomir Tsonevs hilfreiches Test-Snippet . Denken Sie einfach daran, die Version von jQuery zu ändern, um unter jedem zu testen.

5 Stimmen

Dies ist eine verwandte, wenn auch andere Frage: stackoverflow.com/questions/17425543/

2 Stimmen

Wenn Sie nicht an der virtuellen Ausblendung von CSS-Elementen interessiert sind, sondern an der physischen Sichtbarkeit im "Viewport-Bereich" für den Benutzer, dann sollten Sie sich Folgendes ansehen stackoverflow.com/questions/487073/ y stackoverflow.com/questions/123999/

12voto

Sangeet Shah Punkte 2939

Dies ist eine Option, um zu prüfen, ob der Tag sichtbar ist oder nicht

 // using a pure CSS selector  
   if ($('p:visible')) {  
      alert('Paragraphs are visible (checked using a CSS selector) !');  
   };  

   // using jQuery's is() method  
   if ($('p').is(':visible')) {  
      alert('Paragraphs are visible (checked using is() method)!');  
   };  

   // using jQuery's filter() method  
   if ($('p').filter(':visible')) {  
      alert('Paragraphs are visible (checked using filter() method)!');  
   };  

   // you can use :hidden instead of :visible to reverse the logic and check if an element is hidden  
   // if ($('p:hidden')) {  
   //    do something  
   // };

12voto

Wolfack Punkte 2329
$( "div:visible" ).click(function() {
  $( this ).css( "background", "yellow" );
});
$( "button" ).click(function() {
  $( "div:hidden" ).show( "fast" );
});

API-Dokumentation: sichtbarer Selektor

12voto

Disapamok Punkte 1337

Sie können eine Klasse nur hinzufügen, wenn sie sichtbar ist. Eine Klasse hinzufügen, show . Dann prüfen Sie, ob sie eine Klasse haben:

$('#elementId').hasClass('show');

Sie gibt true zurück, wenn Sie die show Klasse.

Fügen Sie CSS wie folgt hinzu:

.show{ display: block; }

9voto

Es gibt zu viele Methoden, um nach verborgenen Elementen zu suchen. Dies ist die beste Wahl (die ich Ihnen gerade empfohlen habe):

Verwenden Sie jQuery, um ein Element "display:none" in CSS für versteckt zu machen.

Der Punkt ist:

$('element:visible')

Und ein Beispiel für die Anwendung:

$('element:visible').show();

9voto

Antoine Auffray Punkte 1153

Prüfen Sie einfach, ob die display Attribut (oder visibility je nachdem, welche Art der Unsichtbarkeit Sie bevorzugen). Beispiel:

if ($('#invisible').css('display') == 'none') {
    // This means the HTML element with ID 'invisible' has its 'display' attribute set to 'none'
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X