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

时间:2009-10-29 19:57:47

标签: jquery

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

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

$('.myclass').live('change keypress blur', function(){
  // do stuff
});

4 个答案:

答案 0 :(得分: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
  }
});

答案 1 :(得分:14)

来自jQuery 1.7 ,“on”功能正是您所需要的:

$("a").on({
    click: function() {
        // do something on click
    },
    mouseenter: function() {
       // do something on mouseenter
    },
    mouseleave: function() {
         // do something on mouseleave
    }
});

答案 2 :(得分:7)

在jQuery 1.7中,有一个API可以让你轻松实现......

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

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

请查看此页面.on() [ jQuery 1.7 API ]

答案 3 :(得分:1)

尝试这种方式:

("#button").bind("click keyup", function(){

// your code goes here

})