2010-08-10 13 views
5

Come si usa un "o" dichiarazione in jQuery, ho due dichiarazioni separate che penso di poter combinare essere solo una:jquery "o" dichiarazione

$('li.members').hover(function() { 
    $('.members-show').show(); 
    $('.brokers-show').hide(); 
    $('.providers-show').hide(); 
    $('.employers-show').hide(); 
    $('.seniors-show').hide(); 
    return false; 
    }); 

$('li.members-active').hover(function() { 
    $('.members-show').show(); 
    $('.brokers-show').hide(); 
    $('.providers-show').hide(); 
    $('.employers-show').hide(); 
    $('.seniors-show').hide(); 
    return false; 
    }); 
+1

se, per qualche ragione, combinando selettori nel modo in cui Ryan suggeriva, non lo farebbe per te (in teoria; se, ad esempio, stavi aggiungendo la stessa funzionalità al passaggio del mouse su un elemento e per fare clic in tempo reale su un altro elemento, nel tuo esempio la risposta di Ryan è davvero la strada da percorrere), potresti comunque effettuare il refactoring creando un elemento separato function: 'function doStuff() {...} $ ('li.members'). hover (doStuff); $ ('sthElse'). live ('click', doStuff); 'Ho solo pensato che dovrei aggiungere che =) –

+0

Se non ti aspetti di invertire le funzioni' .show() 'e' .hide() il mouse parte, quindi si potrebbe anche usare '.mouseenter()' invece di '.hover()'. In questo momento, il conduttore sta sparando una seconda volta senza alcun effetto visibile quando il mouse lascia 'li.members'. – user113716

risposta

16
$('li.members, li.members-active').hover(function() { 
    $('.members-show').show(); 
    $('.brokers-show').hide(); 
    $('.providers-show').hide(); 
    $('.employers-show').hide(); 
    $('.seniors-show').hide(); 
    return false; 
    }); 
+9

Inoltre: '$ ('. Brokers-show, .providers-show, .employers-show, .seniors-show'). Hide()'. (Probabilmente l'intero suffisso '* -show' potrebbe essere rilasciato per una classe CSS separata' show', che potrebbe essere aggiunta e rilasciata con 'addClass()' e 'removeClass' ...) – Tomalak

10
$('li.members, li.members-active').hover(function() { 
    $('.members-show').show(); 
    $('.members-show, .providers-show, .employers-show, .seniors-show').hide();  
    return false; 
    }); 
+1

Quasi - il $(). Hide () il selettore ha bisogno di virgole. Ma +1 per combinare quelle chiamate. –

1

Prova il Multiple Selector:

$('li.members,li.members-active').hover(function() { 
    $('.members-show').show(); 
    $('.brokers-show').hide(); 
    $('.providers-show').hide(); 
    $('.employers-show').hide(); 
    $('.seniors-show').hide(); 
    return false; 
    }); 
Problemi correlati