0

「ロングクリック」をエミュレートする非常に優れた機能があります

(function($) {
    $.fn.longClick = function(callback, timeout) {
        var timer;
        timeout = timeout || 500;
        $(this).mousedown(function() {
            timer = setTimeout(function() { callback(); }, timeout);
            return false;
        });
        $(document).mouseup(function() {
            clearTimeout(timer);
            return false;
        });
    };

})(jQuery);

$('#button').longClick(function(){ /* everything I want */ })

このコードは、すでに存在するアイテムで正常に機能します。
しかし、このボタンを jQuery 経由で DOM に追加すると、このスクリプトも機能しません。
この構造も longClick では機能しませんが、'click' では正しく機能します。

$(document).on('longClick',  "#button",function () {
        /* everything I want */
    });

どうすれば修正できますか?

ありがとう!

===========
UPD

これは、元の要素では正常に機能しますが、jQuery を追加したものでは機能しませんが、デフォルトのメソッドを使用する別のコードです。

var pressTimer;    
$("#button").mouseup(function(){
  clearTimeout(pressTimer)
  return false;
}).mousedown(function(){
  pressTimer = window.setTimeout(function() {
         /* function */
  },500)
  return false; 
});
4

2 に答える 2