5

在这里需要我的 jquery 一点帮助

我希望所有名称以“my-”开头并以“-press”结尾的按钮都有一个“click”事件。

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

动态添加到 DOM 的按钮应该具有相同的事件。

4

5 回答 5

10

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

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

要动态地将事件分配给元素,请使用on http://api.jquery.com/on/并提供您的选择器作为正确delegate事件的第二个参数。

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

假设您将输入包装在 上#container,否则替换#containerbody,但始终最好选择最接近的祖先selector

于 2012-04-11T06:41:48.010 回答
2

您可以使用属性 equals selector属性以 selector 开头,属性以 selector结尾以及委托方法来捕获稍后添加的元素的事件:

$('body').delegate('input[type=button][name^="my-"][name$="-press"]', 'click', function(){
  ...
});
于 2012-04-11T06:43:52.997 回答
0

给他们上一堂课,然后做:

$('.classname').click(function(){etc.});
于 2012-04-11T06:41:56.903 回答
0

你可以这样做

$('#my-'+dunamic_change_here+'-press').click(function(){
  // your code
});
于 2012-04-11T06:45:15.787 回答
0

在我的头顶上:

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

如果它们被动态添加到 dom 中:

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

Matpols 的答案可能是最简单的方法。

于 2012-04-11T06:45:42.680 回答