2012-04-11 17 views
5

bisogno di un piccolo aiuto con il mio jquery quiJquery selettori

voglio tutto il mio pulsante con un nome che inizia con "mio-" per finire con "Premere" di avere un evento di "click".

<input type="button" id="my-button-x-press" name="my-button-x-name-press" /> 

I pulsanti aggiunti dinamicamente al DOM devono avere lo stesso evento.

risposta

10

http://api.jquery.com/category/selectors/

$('input[type=button][name^=my-][name$=-press]').click(function() { 
    // code 
}) 

Per assegnare evento di elementi dinamicamente, utilizzare onhttp://api.jquery.com/on/ e fornire il selettore come secondo argomento correttamente delegate evento.

$('#container').on('click', 'input[type=button][name^=my-][name$=-press]', function() { 
    // code 
}) 

Supponendo che si sta avvolgendo l'ingressi #container, altrimenti sostituire #container con body, ma è sempre preferibile selezionare l'antenato più vicino del selector

0

dare loro tutta una classe e fare:

$('.classname').click(function(){etc.}); 
0

si può fare in questo modo

$('#my-'+dunamic_change_here+'-press').click(function(){ 
    // your code 
}); 
0

Fuori della parte superiore della mia testa:

$('input[name^="my-"]input[name$="-press"]').click(function(){ 
    //Stuff to happen. 
}); 

Se sono dinamicamente aggiunti the dom:

$('input[name^="my-"]input[name$="-press"]').on('click', function(){ 
    //Stuff to happen. 
}); 

M risposta atpols è probabilmente il modo più semplice per farlo in realtà.

+0

Se gli input sono inseriti dinamicamente, il 'on()' dovrebbe essere associato a un elemento antenato, non l'elemento che viene inserito dinamicamente. –