2010-08-10 7 views
5

¿Cómo utilizo un "o" declaración en jQuery, tengo dos estados separados que creo que se pueden combinar para ser sólo una:jQuery "o" declaración

$('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

si, por alguna razón, combinar selectores en la forma en que Ryan sugirió que no lo haría por usted (teóricamente; si, por ejemplo, agregaba la misma funcionalidad al desplazamiento de un elemento y al clic en vivo de otro elemento; en su ejemplo, la respuesta de Ryan es realmente el camino a seguir), aún podría refactorizar esto, al crear un elemento separado función: 'función doStuff() {...} $ ('li.members'). hover (doStuff); $ ('sthElse'). live ('click', doStuff); 'Pensé que debería agregar que =) –

+0

Si no espera revertir las funciones' .show() 'y' .hide() 'cuando el mouse se va, entonces también podrías usar '.mouseenter()' en lugar de '.hover()'. En este momento, el controlador está disparando por segunda vez sin efecto visible cuando el mouse deja 'li.members'. – user113716

Respuesta

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

También: '$ ('. Brokers-show, .providers-show, .employers-show, .seniors-show'). Hide()'. (Probablemente, el sufijo '* -show' completo podría descartarse para un' show' de clase de CSS separado, que podría agregarse y soltarse con 'addClass()' y '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

Casi - el $(). Hide () selector necesita comas. Pero +1 para combinar esas llamadas. –

1

Prueba el 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; 
    }); 
Cuestiones relacionadas