2011-02-02 11 views
8

Jeśli mam coś takiego:Jquery: używanie dwóch selektorów dla jednego zdarzenia .click?

$(".jq_elements").children("input").click(function() 

Jak mogę dodać inny do niego, tak że samo zdarzenie zostanie zwolniony, gdy jeden z nich zostanie kliknięty.

Zasadniczo coś jak to będzie potrzebne:

$(".jq_elements, .jq_another_div").children("input").click(function() 

Czy coś takiego jest możliwe?

edytuj: Próbowałem tego w sposób opisany powyżej. Okazało się, że mój kod był nieco zakrzywiony, ale teraz jest w porządku.

+0

Tak. Próbowałeś tego? – lonesomeday

+0

Te problemy nie muszą się tutaj pojawiać. Wykonaj wyszukiwanie: http://www.google.com/search?q=jquery+multiple+selectors. –

Odpowiedz

17

$("selector, selector")

Tej samej składni działa. Czy chcesz zadzwonić pod numer .children("input")?

Alternatywnie $.merge($("selector"), $("selector"));

+0

tak, chciałbym to nazwać w obu przypadkach. – WraithLux

+0

nie powinien być $ (". Jq_elements input, .jq_another_div input"). Click (function() to samo co wersja .children ("input") –

+0

@Benjamin tak, ale prawdopodobnie mniej wydajnie od twojego wywołania ' dzieci dwa razy – Raynos

5

Sposób pokazał powinno działać.

http://api.jquery.com/multiple-selector/

Wszystko czego potrzebujesz to separator przecinek.

EDYCJA: Dlaczego dzwonisz do dzieci()?

$(".jq_elements > input, jq_another_div > input").click(function(){ 
    // ? 
}); 

Spacja jest selektorem, czyli wszystkimi potomkami pasującymi do następującego wyboru. Tak więc .jq_another_div input znajdzie wszystkie elementy potomne w elemencie z jq_another_div jako nazwą klasy.

http://api.jquery.com/child-selector/

http://api.jquery.com/descendant-selector/

+0

Aby powielić, co robi 'dziecko (" dane wejściowe ")', selektor naprawdę powinien być '" .jq_elements> input, jq_another_div> input "' – dcharles

+0

Masz rację. Ja zaktualizowałem. –

Powiązane problemy