2011-02-02 15 views
8

Se ho qualcosa di simile:Jquery: utilizzando due selettori per un evento .click?

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

Come faccio ad aggiungere un altro selettore ad esso, in modo che lo stesso evento viene attivato quando uno dei due viene cliccato.

In sostanza sarebbe necessario qualcosa di simile:

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

è qualcosa di simile possibile?

modifica: Ho provato questo modo che ho descritto sopra. Risulta che il mio codice era un po 'storto, ma adesso va bene.

+0

Sì. L'hai provato? – lonesomeday

+0

Questi problemi non devono apparire qui. Fai una ricerca: http://www.google.com/search?q=jquery+multiple+selector. –

risposta

17

$("selector, selector")

che funziona molto sintassi. Vuoi chiamare lo .children("input") su entrambi?

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

+0

si, vorrei chiamarlo su entrambi. – WraithLux

+0

non deve essere $ (". Input jq_elements, input .jq_another_div"). Click (function() uguale alla versione con .children ("input") –

+0

@Benjamin sì ma probabilmente meno efficiente dal momento della chiamata bambini due volte – Raynos

5

Il modo in cui hai mostrato dovrebbe funzionare.

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

Tutto ciò che serve è un delimitatore virgola.

EDIT: Perché stai chiamando bambini()?

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

Lo spazio è un selettore, ovvero tutti i discendenti che corrispondono alla seguente selezione. Quindi .jq_another_div input troverà tutti gli input secondari all'interno dell'elemento con jq_another_div come un nome di classe.

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

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

+0

Per replicare ciò che 'child (" input ")' sta compiendo, il selettore dovrebbe in realtà essere "" .jq_elements> input, jq_another_div> input "' – dcharles

+0

Hai ragione. Ho aggiornato –

Problemi correlati