版博士V2.0程序
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

61 righe
2.2 KiB

  1. import IEventListener from './IEventListener';
  2. import Event from './Event';
  3. import IEventTarget from './IEventTarget';
  4. import IEventListenerOptions from './IEventListenerOptions';
  5. /**
  6. * Handles events.
  7. */
  8. export default abstract class EventTarget implements IEventTarget {
  9. readonly _listeners: {
  10. [k: string]: (((event: Event) => void) | IEventListener)[];
  11. };
  12. readonly _listenerOptions: {
  13. [k: string]: (IEventListenerOptions | null)[];
  14. };
  15. /**
  16. * Adds an event listener.
  17. *
  18. * @param type Event type.
  19. * @param listener Listener.
  20. * @param options An object that specifies characteristics about the event listener.(currently only once)
  21. * @param options.once
  22. */
  23. addEventListener(type: string, listener: ((event: Event) => void) | IEventListener, options?: IEventListenerOptions): void;
  24. /**
  25. * Adds an event listener.
  26. *
  27. * @param type Event type.
  28. * @param listener Listener.
  29. */
  30. removeEventListener(type: string, listener: ((event: Event) => void) | IEventListener): void;
  31. /**
  32. * Dispatches an event.
  33. *
  34. * @param event Event.
  35. * @returns The return value is false if event is cancelable and at least one of the event handlers which handled this event called Event.preventDefault().
  36. */
  37. dispatchEvent(event: Event): boolean;
  38. /**
  39. * Adds an event listener.
  40. *
  41. * TODO:
  42. * Was used by with IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
  43. *
  44. * @deprecated
  45. * @param type Event type.
  46. * @param listener Listener.
  47. */
  48. attachEvent(type: string, listener: ((event: Event) => void) | IEventListener): void;
  49. /**
  50. * Removes an event listener.
  51. *
  52. * TODO:
  53. * Was used by IE8- and Opera. React believed Happy DOM was a legacy browser and used them, but that is no longer the case, so we should remove this method after that this is verified.
  54. *
  55. * @deprecated
  56. * @param type Event type.
  57. * @param listener Listener.
  58. */
  59. detachEvent(type: string, listener: ((event: Event) => void) | IEventListener): void;
  60. }