2011-12-30 18 views
8

È possibile combinare $(this) con $('.someclass')?jQuery "questo" più altri selettori?

Esempio: $(this + ', .someclass').hover();

Sto tentando di utilizzare l'azione di passaggio del mouse per animare una classe non discendente. Voglio che l'elemento di classe si animi sia che "it", ovvero $ ('. Someclass') O $ (this) sia al passaggio del mouse.

Spero che questo possa essere fatto senza creare 2 azioni di hover separate.

+1

Se 'this' ha un' id', '$ ('#' + this.id +', .someclass') hover();.'. –

risposta

16

È possibile utilizzare jQuery's .add().

$(this).add('.someClass').hover(); 
+0

Grazie .....! –

+0

Prego! Sono contento di aver potuto aiutare :-) –

0

Un'altra opzione sarebbe quella di utilizzare jQuery find()

$(this).find('.someclass').hover(); 
+0

Questo cercherà '.someclass' come figlio di' this'. Non è l'equivalente di ',' in un selettore. –

1

È possibile utilizzare contesto selettore: http://api.jquery.com/jQuery/#jQuery-selector-context

$('+ .someclass', this).hover(); 

Ecco un esempio: Passa il mouse sopra il primo fratello e il secondo fratello di il colore di sfondo sarà cambiato.

$('.sibling1').hover(
 
    function() { 
 
    $('+ .sibling2', this).css({"background":"#ff0"}); 
 
    }, 
 
    function() { 
 
    $('+ .sibling2', this).css({"background":"#eee"}); 
 
    } 
 
);
div { 
 
    padding:5px; 
 
    background:#eee; 
 
    margin-bottom:5px; 
 
    display:inline-block; 
 
    cursor:pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="sibling1">Sibling 1</div> 
 
<div class="sibling2">Sibling 2</div>