首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >对一个选择器使用多个事件处理程序的JQuery .on()方法

对一个选择器使用多个事件处理程序的JQuery .on()方法
EN

Stack Overflow用户
提问于 2011-12-23 02:14:55
回答 5查看 163.8K关注 0票数 146

尝试弄清楚如何将Jquery .on()方法与具有多个关联事件的特定选择器一起使用。我之前使用的是.live()方法,但不太确定如何使用.on()来完成同样的任务。下面是我的代码:

代码语言:javascript
复制
$("table.planning_grid td").live({
  mouseenter:function(){
     $(this).parent("tr").find("a.delete").show();
  },
  mouseleave:function(){
     $(this).parent("tr").find("a.delete").hide();        
  },
  click:function(){
    //do something else.
  }
});

我知道我可以通过调用以下方法来分配多个事件:

代码语言:javascript
复制
 $("table.planning_grid td").on({
    mouseenter:function(){  //see above
    },
    mouseleave:function(){ //see above
    }
    click:function(){ //etc
    }
  });

但我相信.on()的正确用法应该是这样的:

代码语言:javascript
复制
   $("table.planning_grid").on('mouseenter','td',function(){});

有没有办法做到这一点?或者,这里的最佳实践是什么?我尝试了下面的代码,但没有结果。

代码语言:javascript
复制
$("table.planning_grid").on('td',{
   mouseenter: function(){ /* event1 */ }, 
   mouseleave: function(){ /* event2 */ },
   click: function(){  /* event3 */ }
 });

提前感谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-23 02:18:15

那是the other way around。你应该这样写:

代码语言:javascript
复制
$("table.planning_grid").on({
    mouseenter: function() {
        // Handle mouseenter...
    },
    mouseleave: function() {
        // Handle mouseleave...
    },
    click: function() {
        // Handle click...
    }
}, "td");
票数 264
EN

Stack Overflow用户

发布于 2014-06-24 23:46:52

此外,如果将多个事件处理程序附加到执行相同函数的同一选择器,则可以使用

代码语言:javascript
复制
$('table.planning_grid').on('mouseenter mouseleave', function() {
    //JS Code
});
票数 196
EN

Stack Overflow用户

发布于 2017-07-26 20:40:18

如果您想在不同的事件上使用相同的函数,可以使用以下代码块

代码语言:javascript
复制
$('input').on('keyup blur focus', function () {
   //function block
})
票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8608145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档