2013-12-12 2 views
11

mi fare questo molto:jQuery Mostra/Nascondi se un'istruzione condizionale

var condition = true; 
if (condition === true) { 
    $('#condition_dependancy').show(); 
} else { 
    $('#condition_dependancy').hide(); 
} 

Questo può essere qualsiasi detergente sintatticamente? Potrei scrivere il mio:.

$('#condition_dependancy').hidden(condition); 

Ma io chiedo solo se c'è qualcosa costruito nel

risposta

33

È possibile utilizzare toggle:

var condition = true; 
$('#condition_dependancy').toggle(condition); 

Nota a margine: Don' usare cose come

if (condition === true) 

a meno che non sia possibile che condition abbia un valore "verità" diverso e che l'espressione sia vera solo se è precisamente true e non se è solo sincera. In generale == (boolean) e (in JavaScript) === (boolean) è solo rumore (sebbene in JavaScript ci siano casi limite per l'utilizzo della versione ===).

Preferisco:

if (condition) 

e (per il caso == false/=== false):

if (!condition) 

* "truthy": In JavaScript, i tipi possono essere costretti da espressioni. Ovunque sia previsto un booleano, se usi qualcosa che non è un booleano, è forzato ad esserlo. Le cose che costringono a true sono chiamate valori "veri"; le cose che costringono a false sono chiamate valori "falsi". I valori di falsi sono 0, "", NaN, undefined, null e, naturalmente, false. Tutto il resto è vero.

+1

Grazie! Non avevo idea che toggle potesse accettare questo parametro. Ho incluso il '=== true' nella mia sintassi per (male) esprimere che questa potrebbe essere qualsiasi espressione valutata, non solo un bool - davvero sciocco. Ma questa è ancora un'ottima nota a margine per chi legge. (Accetterò questa risposta non appena scade il mio limite di 10 minuti!) –

6

Utilizzando toggle():

$('#condition_dependancy').toggle(condition);