throttle.js 502 B

123456789101112131415161718
  1. export default {
  2. inserted(el, binding) {
  3. let throttleTime = binding.value;
  4. if (!throttleTime) {
  5. throttleTime = 1000;
  6. }
  7. let cbFun;
  8. el.addEventListener('click', event => {
  9. if (!cbFun) { // 第一次执行
  10. cbFun = setTimeout(() => {
  11. cbFun = null;
  12. }, throttleTime);
  13. } else {
  14. event && event.stopImmediatePropagation();
  15. }
  16. }, true);
  17. }
  18. }