2012-04-11 9 views
5

Necesita un poco de ayuda con mi jQuery aquíselectores Jquery

quiero toda mi botón con un nombre que empieza con "mi-" y terminando con "Pulse" para tener un evento de "clic".

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

Los botones dinámicamente agregados a DOM deben tener el mismo evento.

Respuesta

10

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

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

Para asignar eventos a los elementos de forma dinámica, utilice onhttp://api.jquery.com/on/ y el suministro de su selector como el segundo argumento a delegate adecuadamente evento.

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

Suponiendo que está envolviendo sus entradas en #container, si no, sustituir #container con body, pero siempre es preferible seleccionar el antepasado más cercano del selector

0

darles toda una clase y hacer:

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

que puede hacerlo de esta manera

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

De la parte superior de mi cabeza:

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

Si se añaden dinámicamente a la dom:

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

M La respuesta de atpols es probablemente la forma más simple de hacerlo en realidad.

+0

Si las entradas se insertan dinámicamente, entonces 'on()' tendría que estar vinculado a un elemento ancestro, no al elemento que se inserta dinámicamente. –