repeat-click.js
729 Bytes
'use strict';
exports.__esModule = true;
var _dom = require('element-ui/lib/utils/dom');
exports.default = {
bind: function bind(el, binding, vnode) {
var interval = null;
var startTime = void 0;
var handler = function handler() {
return vnode.context[binding.expression].apply();
};
var clear = function clear() {
if (Date.now() - startTime < 100) {
handler();
}
clearInterval(interval);
interval = null;
};
(0, _dom.on)(el, 'mousedown', function (e) {
if (e.button !== 0) return;
startTime = Date.now();
(0, _dom.once)(document, 'mouseup', clear);
clearInterval(interval);
interval = setInterval(handler, 100);
});
}
};