if (!this._cancelFunction) {
        timeout = timeout || 500;
        var self = this;
        var reset = function() {
          var cfn = self._cancelFunction;
          if (cfn) {
            clearTimeout(cfn.id);
            document.removeEventListener('click', cfn, true);
            self._cancelFunction = null;
          }
        };
        var canceller = function(e) {
          e.tapPrevented = true;
          reset();
        };
        canceller.id = setTimeout(reset, timeout);
