0

MouseHold Eventと呼ばれる Remy Sharp の jQuery プラグインを使用していて、それを .on() メソッドでバインドしようとしましたが、うまくいきません。

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

上記のコードは、#button が DOM にある場合は正常に動作しますが、ボタンが動的に作成される場合は動作しません。

それで、誰かが私を助けることができますか?次のコードを機能させるために、マウスホールドイベントを .on() メソッドにバインドする方法は?

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

1 に答える 1

0

Remy Sharp$.fn.mousehold.on()は、イベント タイプではなく jQuery プラグインです。イベント ハンドラ バインディングを使用してバインドすることはできません。


アップデート

$.fn.mousehold委任で動作するプラグインをまとめました。メソッドのシグネチャは次のとおりです。

.mousehold( [selector], handler(eventObject) [, delay] )

  • selector: イベントをトリガーする選択された要素の子孫をフィルタリングするためのセレクター文字列。セレクターが指定されているnullか省略されている場合、イベントは選択された要素に到達したときに常にトリガーされます。

  • handler(eventObject): イベントがトリガーされたときに実行する関数。この値falseは、単純に return を実行する関数の省略形としても使用でき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 に答える