まさかリスト

語感良くない?

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では関数呼んでますが、二行程度だったので直接やりたい処理に記述しました。

おわり