2011-12-30 21 views
8

Czy można połączyć $(this) z $('.someclass')?jQuery "to" plus inne selektory?

Przykład: $(this + ', .someclass').hover();

Próbuję użyć akcji najechania, aby animować nieprzypadkową klasę. Chcę, aby element klasy animował, czy "to", aka $ ('. Someclass') OR $ (this) jest zawieszone.

Mam nadzieję, że można to zrobić bez tworzenia 2 oddzielnych akcji najechania.

+1

Jeśli 'this' ma' id', '$ ('#' + this.id +”, .someclass') unoszą();. '. –

Odpowiedz

16

Można użyć jQuery's .add().

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

Dziękuję .....! –

+0

Nie ma za co! Cieszę się, że mogłem pomóc :-) –

0

Innym rozwiązaniem byłoby użyć jQuery find()

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

To będzie szukać '.someclass' jako dziecka' this'. Nie jest odpowiednikiem ',' w selektorze. –

1

można wykorzystywać kontekst selektora: http://api.jquery.com/jQuery/#jQuery-selector-context

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

Oto przykład: Najedź pierwszym rodzeństwem i drugi rodzeństwa kolor tła zostanie zmieniony.

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

Powiązane problemy