JSFiddle - React, Tailwind, and code Playground

HTML

<button id="btnVanilla">Vanilla</button>
<button id="btnjQuery">jQuery</button>

JavaScript

var double = function(){console.log(this.id + ' double')},
    single = function(){console.log(this.id + ' single')};

document.getElementById('btnVanilla').addEventListener('click', makeDoubleClick(double, single));

function makeDoubleClick (doubleClickCallback, singleClickCallback) {
    return (function () {
        var clicks = 0,
            timeout;
        return function () {
            var me = this;
            clicks++;
            if (clicks == 1) {
                singleClickCallback && singleClickCallback.apply(me, arguments);
                timeout = setTimeout(function () {
                    clicks = 0;
                }, 400);
            } else {
                timeout && clearTimeout(timeout);
                doubleClickCallback && doubleClickCallback.apply(me, arguments);
                clicks = 0;
            }
        };
    }());
}

jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
  return this.each(function(){
    var clicks = 0, self = this;
    jQuery(this).click(function(event){
      clicks++;
      if (clicks == 1) {
        setTimeout(function(){
          if(clicks == 1) {
            single_click_callback.call(self, event);
          } else {
            double_click_callback.call(self, event);
          }
          clicks = 0;
        }, timeout || 300);
      }
    });
  });
}

$('#btnjQuery').single_double_click(single, double);