2009-09-21 25 views
13

Sto cercando di scoprire che un DIV è nascosto o se è esposto.JQuery - Se DIV ID è visibile

Questa è la pseudocodice:

 

if(DIV != VISIBLE) // not visible 
{ 
    show content 
} 

eventuali esperti JQuery in grado di aiutare me?

Grazie, Robert

risposta

4

Di seguito verrà visualizzato un div chiamato myDiv se è nascosto. Nota che se vuoi fare altre cose, puoi anche usare each() piuttosto che mostrare e fare altre operazioni su $ (this) all'interno di ciascuna.

$('div#myDiv:hidden').show(); 
+0

è un po 'ridondante no? – nickf

+0

@nickf: Sto solo cercando di essere coerente con l'esempio dato. – tvanfosson

1

Questo metterà alla prova per vedere se è stato selezionato elementi nascosti con il "myDiv" id:

if ($("#mydiv:hidden").length > 0) 
{ 
    // 
} 

Edit: selettore semplificato. Ha dovuto guardare in su:/

39

Se stai cercando di solo mostrano un div che è nascosto, quindi in realtà non ha bisogno di fare tutti i controlli a tutti:

$('#myDiv').show(); 

Indipendentemente il suo stato in anticipo, finirà per essere visibile ora.

Tuttavia, se si desidera eseguire altre azioni a seconda che il contenuto è visibile o meno, allora avrete bisogno di controllare:

if ($('#myDiv').is(":hidden")) 
// or 
if ($('#myDiv:hidden').length) 
// or 
if ($('#myDiv:not(:visible)')) { // you get the idea... 
    //perform your actions 
} 
+0

Non riesco a garantire la santità di questo test, ma ho semplicemente gettato queste tre funzioni in jsperf per vedere cosa è venuto fuori .. Sembra che .is: nascosto è il migliore! http://jsperf.com/is-the-div-hidden –

26

Tutte le altre risposte vanno bene, ma questo è solo a tradurre il vostro pseudocodice in codice javascript effettivo:

if (!$('div').is(':visible')) { 
    $('div').show(); 
} 
0

Se si sta solo cercando di nascondere e mostrare un elemento si potrebbe anche semplicemente utilizzare jQuery .toggle() metodo che farà proprio questo per voi. Allo stesso modo, i metodi .slideToggle() e .fadeToggle() nasconderanno e mostreranno gli elementi con animazioni di diapositive o dissolvenze.