使用jquery为每个添加事件处理程序

时间:2013-05-30 15:41:06

标签: javascript jquery html web-applications

我如何一起使用.on和.each?

$('[id^="thing"]').each(???)

一个人就是:

 $("#button").on("click", function() {
                    console.log(this.id)
 })

5 个答案:

答案 0 :(得分:6)

在包含多个元素的jQuery对象上调用.on()会将处理程序添加到每个元素。

答案 1 :(得分:2)

$('[id^="thing"]').on("click", function() { });

答案 2 :(得分:1)

您可以使用此版本指定选择器,以指定应触发事件的子元素。

$('[id^="thing"]').on('click','button (or whatever selector)', function(){
  // "this" refers to triggering element
  alert($(this).text());
});

答案 3 :(得分:-1)

   $('[id^="thing"]').each(function(i, el) {
        $(el).on("click", function() {                 
       })
    });

答案 4 :(得分:-1)

.each 不需要.on

你想要的东西只能用这个来完成 -

好的方式

$(document).on('click','[id^="thing"]', function() {
    console.log(this.id)
});

它可以按照您的意愿完成,但因为它会毫无理由地影响性能

您想要避免的方式

$('[id^="thing"]').each(function(){
  $(this).on('click', function() {
    console.log(this.id)
  });
});

如果你在.on内使用.each,你可以 以这种方式结束多次绑定事件

错误的方式

$('[id^="thing"]').each(function(){
  $('[id^="thing"]').on('click', function() {
    console.log(this.id)
  });
});