在单个.on()调用中绑定多个事件

时间:2012-04-10 23:56:14

标签: javascript jquery

好的一直在努力切换到jQuery 1.7的新的和改进的.on()函数,而不是依赖于.live()。

这就是得到我的东西,当你有多个绑定时,.live()很棒,让你在一个简单的函数中完成它们。例如:

$('.my_thing').live({
   mouseover: function(e) {
     console.log('hey imma moused over');   
   },
   mouseout: function(e) {
     console.log('hey imma moused out');   
   }
 });

很简单!你会怎么用.on()做到这一点?这里尽可能接近,但仍感觉很乱。

$(document).on('mouseover','.my_thing', function(e) {
     console.log('hey imma moused over');   
  }).on('mouseout','.my_thing', function(e) {
     console.log('hey imma moused out');   
 });

感觉凌乱,不是吗?必须有更好的方法。

PS - 如果您想在Google上了解更多有关此功能的话,这必须是 EVER 中最糟糕的功能之一。

2 个答案:

答案 0 :(得分:4)

$(document).on({
   mouseover: function(e) {
     console.log('hey imma moused over');   
   },
   mouseout: function(e) {
     console.log('hey imma moused out');   
   }
 }, '.my_thing' );

答案 1 :(得分:2)

除了选择器之外,只需使用事件地图:

$(document).on({
    mouseover: function(e) {
        console.log('hey imma moused over');   
    },
    mouseout: function(e) {
        console.log('hey imma moused out');   
    }
}, '.my_thing');

Here's a demo.