将多个事件绑定到jQuery"live"方法

Wil*_*avy 17 jquery

jQuery的'live'方法无法处理多个事件.有没有人知道将多个事件附加到轮询当前和未来元素的函数的好方法?或者我是否因为我需要的每个事件处理程序而使用重复的实时方法?

示例 - 我正在尝试执行以下操作:

$('.myclass').live('change keypress blur', function(){
  // do stuff
});
Run Code Online (Sandbox Code Playgroud)

Chr*_*tow 19

从jQuery 1.4.1开始,.live()可以接受多个空格分隔的事件,类似于.bind()中提供的功能.例如,我们可以同时"实时绑定"mouseover和mouseout事件,如下所示:

$('.hoverme').live('mouseover mouseout', function(event) {
  if (event.type == 'mouseover') {
    // do something on mouseover
  } else {
    // do something on mouseout
  }
});
Run Code Online (Sandbox Code Playgroud)


TeC*_*n4K 14

从jQuery 1.4.3开始,您可以通过传递事件类型/处理程序对的映射来同时绑定多个实时事件处理程序:

$("a").on({
    click: function() {
        // do something on click
    },
    mouseenter: function() {
       // do something on mouseenter
    },
    mouseleave: function() {
         // do something on mouseleave
    }
});
Run Code Online (Sandbox Code Playgroud)

http://api.jquery.com/live/

从jQuery 1.7开始,"on"函数更好:

$("a").on({
    click: function() {
        // do something on click
    },
    mouseenter: function() {
       // do something on mouseenter
    },
    mouseleave: function() {
         // do something on mouseleave
    }
});
Run Code Online (Sandbox Code Playgroud)


小智 7

在jQuery 1.7中有一个API,可以让你轻松地完成它...

$(".myClass").on({
    click: function(){
         alert("You click on me!");
    },
    mouseenter: function(){
         alert("Do you want click on me?");
    }
});
Run Code Online (Sandbox Code Playgroud)

在我看来,这种方法是完全有效的,并收集你可以在元素的事件中使用的所有能力....

看一下这个页面.on()[jQuery 1.7 API]