Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 

39 рядки
1.0 KiB

  1. 'use strict';
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = {
  6. once: function once(el, type, callback) {
  7. var typeArray = type ? type.split(' ') : [];
  8. var recursiveFunction = function recursiveFunction(event) {
  9. event.target.removeEventListener(event.type, recursiveFunction);
  10. return callback(event);
  11. };
  12. for (var i = typeArray.length - 1; i >= 0; i--) {
  13. this.on(el, typeArray[i], recursiveFunction);
  14. }
  15. },
  16. on: function on(el, type, callback) {
  17. if (el.addEventListener) {
  18. el.addEventListener(type, callback);
  19. } else {
  20. // IE8+ Support
  21. el.attachEvent('on' + type, function () {
  22. callback.call(el);
  23. });
  24. }
  25. },
  26. off: function off(el, type, callback) {
  27. if (el.removeEventListener) {
  28. el.removeEventListener(type, callback);
  29. } else {
  30. // IE8+ Support
  31. el.detachEvent('on' + type, callback);
  32. }
  33. },
  34. isKeyboard: function isKeyboard(event) {
  35. return ['keydown', 'keypress', 'keyup'].indexOf(event.type) !== -1;
  36. }
  37. };