一个带有委托的mousehold插件?

时间:2012-12-29 11:47:37

标签: jquery events mouse

我正在使用Remy Sharp的jQuery插件MouseHold Event,我尝试用.on()方法绑定它,但是,它不起作用。

$('#button').mousehold(function() {
   console.log(1);
});

如果#button在DOM中,上面的代码可以正常工作,但如果按钮是动态创建的话,则不行。

那么,任何人都可以帮助我吗?如何将mousehold事件与.on()方法绑定,以使以下代码有效?

$('body').on('mousehold', '#button', function() {
    console.log(1);
}); 

1 个答案:

答案 0 :(得分:0)

Remy Sharp's $.fn.mousehold是一个jQuery插件而不是Event类型,你不能使用.on()或任何事件处理程序绑定来绑定它。


更新

我把一个$.fn.mousehold插件放在一起,与委托一起工作。方法签名是:

  

<强> .mousehold( [selector], handler(eventObject) [, delay] )

     
      
  • selector :一个选择器字符串,用于过滤触发事件的所选元素的后代。如果选择器为null或省略,则事件始终在到达所选元素时触发。

  •   
  • handler(eventObject) :触发事件时执行的函数。值false也可以作为简单返回false的函数的简写。

  •   
  • delay :一个数字,用于确定连续触发前等待的毫秒数。默认值为100

  •   

示例:

$('#button').mousehold(function(evt) {
  console.log(evt.times);
});

$(document).mousehold("#button", function() {
  console.log(evt.times);
}, 200);

A live example here.