jQueryでダブルクリックとクリックを区別したい
題名の通りjQueryでダブルクリックとクリックを区別したい時にハマったのでメモ。
ダブルクリックはclickイベントが先に実行されるので、ダブルクリックとクリックでそれぞれ別々の処理ができません。
しかし、解決策がありました。
stackoverflow.com
$(セレクタ).on('click', function(e) { var that = this; setTimeout(function() { var dblclick = parseInt($(that).data('double'), 10); if (dblclick > 0) { $(that).data('double', dblclick-1); } else { //やりたい処理; } }, 250); }).dblclick(function(e) { $(this).data('double', 2); //やりたい処理; });
jQuery v2.1.4 で動作しました。
流石Stack Overflowですね。
Stack Overflowでは関数呼んでますが、二行程度だったので直接やりたい処理に記述しました。
おわり