特定の条件でトリガーされるカスタム イベント (トリプル クリックやスワイプなど) を JavaScript で作成することはできますか? おそらく、このカスタム イベントをリッスンするには:
addEventListener('trplclick', handler, false);
したがって、ハンドラーは、たとえば 600 ミリ秒以内に 3 回のクリックが行われた場合にのみ呼び出されます。
特定の条件でトリガーされるカスタム イベント (トリプル クリックやスワイプなど) を JavaScript で作成することはできますか? おそらく、このカスタム イベントをリッスンするには:
addEventListener('trplclick', handler, false);
したがって、ハンドラーは、たとえば 600 ミリ秒以内に 3 回のクリックが行われた場合にのみ呼び出されます。
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);
}
});
ここで同様の質問を参照してください: JavaScript でトリプル クリックをリッスンするにはどうすればよいですか?
基本的に、ダブル クリック イベントとシングル クリック イベントを組み合わせて、トリプル クリックを模倣します。ダブルクリック イベントがトリガーされたら、タイムアウトを 200 ミリ秒に設定します。次のクリックがある場合は、タイマーがタイムアウトしていないかどうかを確認してください。前回のダブルクリックから 200 ミリ秒後にこのクリックが発生した場合 (このとき、タイマーはダブルクリック ハンドラーで null に設定されていました)、このクリックを破棄し、それ以外の場合はトリプル クリックとしてカウントします。
一般的なカスタム イベントの設定については、Nicholas C. Zakas のブログ投稿 ( http://www.nczonline.net/blog/2010/03/09/custom-events-in-javascript/ ) を参照してください。