2

特定の条件でトリガーされるカスタム イベント (トリプル クリックやスワイプなど) を JavaScript で作成することはできますか? おそらく、このカスタム イベントをリッスンするには:

addEventListener('trplclick', handler, false); 

したがって、ハンドラーは、たとえば 600 ミリ秒以内に 3 回のクリックが行われた場合にのみ呼び出されます。

4

2 に答える 2

1

triplclick自分でイベントをトリガーする必要があります。個々のクリック イベントをリッスンしてカウントし、triplclick意味のあるタイミングでトリガーします。

をご覧くださいdocument.dispatchEvent

概念を説明するために jQuery を使用していますが、次のことは必要ありません。

var count = 0;
var resetTimeout - 1;
$(element).on("click", function(){
    count++;
    clearTimeout(resetTimeout);
    if (count === 3)
    {
        count = 0;
        $(element).trigger("trplclick");
    }
    else 
    {
        resetTimeout = setTimeout(function(){
            count = 0; // Don't count if no click within the last second.
        }, 1000);
    }
});
于 2013-03-27T18:35:09.240 に答える
0

ここで同様の質問を参照してください: JavaScript でトリプル クリックをリッスンするにはどうすればよいですか?

基本的に、ダブル クリック イベントとシングル クリック イベントを組み合わせて、トリプル クリックを模倣します。ダブルクリック イベントがトリガーされたら、タイムアウトを 200 ミリ秒に設定します。次のクリックがある場合は、タイマーがタイムアウトしていないかどうかを確認してください。前回のダブルクリックから 200 ミリ秒後にこのクリックが発生した場合 (このとき、タイマーはダブルクリック ハンドラーで null に設定されていました)、このクリックを破棄し、それ以外の場合はトリプル クリックとしてカウントします。

一般的なカスタム イベントの設定については、Nicholas C. Zakas のブログ投稿 ( http://www.nczonline.net/blog/2010/03/09/custom-events-in-javascript/ ) を参照してください。

于 2013-03-27T18:43:52.180 に答える