2012-04-11 15 views
5

trzeba trochę pomóc z moim jQuery tutajJquery selektorów

Chcę wszystkie moje przycisk z nazwą zaczynającą się od „my-” a kończąc na „-Press” mieć „kliknięcie” zdarzenie.

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

Przyciski dynamicznie dodawane do DOM powinny mieć to samo zdarzenie.

Odpowiedz

10

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

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

Aby przypisać zdarzenie do elementów dynamicznie, użyj onhttp://api.jquery.com/on/ i podać swój selektor jako drugi argument do prawidłowego delegate wydarzenie.

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

Zakładając, że owijanie swoich wejść na #container, inaczej zastąpić #container z body, ale to zawsze korzystne, aby wybrać najbliższy przodka selector

0

dać im całą klasę i zrobić:

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

można to zrobić jak ten

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

Off szczycie mojej głowie:

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

Jeśli są dynamicznie dodawane do dom:

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

M Odpowiedź atpols jest prawdopodobnie najprostszym sposobem, aby to zrobić.

+0

Jeśli dane wejściowe są wstawiane dynamicznie, to 'on()' musi być powiązane z elementem nadrzędnym, a nie z elementem wstawianym dynamicznie. –

Powiązane problemy