0

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

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

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

那么,谁能帮帮我?如何使用 .on() 方法绑定 mousehold 事件,以使以下代码工作?

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

1 回答 1

0

Remy Sharp's$.fn.mousehold是一个 jQuery 插件,不是事件类型,您不能使用.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);

这里有一个活生生的例子。

于 2012-12-29T11:51:16.277 回答