## EventTarget

#### new EventTarget()
`event-target.js`, `line 6`

  `EventTarget` is a class that can have the same API as the DOM `EventTarget`. It adds shorthand functions that wrap around lengthy functions. For example: the `on` function is a wrapper around `addEventListener`.

  See:

    - EventTarget Spec

### Methods

#### addEventListener()
`event-target.js`, `line 74`

  An alias of EventTarget#on. Allows `EventTarget` to mimic the standard DOM API.

  See:
    - EventTarget#on

#### dispatchEvent()
`event-target.js`, `line 159`

  An alias of EventTarget#trigger. Allows `EventTarget` to mimic the standard DOM API.

  See:
    - EventTarget#trigger

#### off(type, fn)
`event-target.js`, `line 87`

  Removes an `event listener` for a specific event from an instance of `EventTarget`. This makes it so that the `event listener` will no longer get called when the named event happens.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | An event name or an array of event names.
  `fn` | EventTarget~EventListener | The function to remove.

#### on(type, fn)
`event-target.js`, `line 57`

  Adds an `event listener` to an instance of an `EventTarget`. An `event listener` is a function that will get called when an event with a certain name gets triggered.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | An event name or an array of event names.
  `fn` | EventTarget~EventListener | The function to call with `EventTarget`s

#### one(type, fn)
`event-target.js`, `line 111`

  This function will add an `event listener` that gets triggered only once. After the first trigger it will get removed. This is like adding an `event listener` with EventTarget#on that calls EventTarget#off on itself.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `type` | string | Array.<string> | An event name or an array of event names.
  `fn` | EventTarget~EventListener | The function to be called once for each event name.

#### removeEventListener()
`event-target.js`, `line 98`

  An alias of EventTarget#off. Allows `EventTarget` to mimic the standard DOM API.

  See:
    - EventTarget#off

#### trigger(event)
`event-target.js`, `line 137`

  This function causes an event to happen. This will then cause any `event listeners` that are waiting for that event, to get called. If there are no `event listeners` for an event then nothing will happen.

  If the name of the `Event` that is being triggered is in `EventTarget.allowedEvents_`. Trigger will also call the `on` + `uppercaseEventName` function.

  Example: 'click' is in `EventTarget.allowedEvents_`, so, trigger will attempt to call `onClick` if it exists.

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `event` | string | EventTarget~Event | Object | The name of the event, an `Event`, or an object with a key of type set to an event name.

### Type Definitions

#### Event
`event-target.js`, `line 16`

  A Custom DOM event.

  See:

    - Properties

#### EventListener(event, hashopt)
`event-target.js`, `line 23`

  All event listeners should follow the following format.

  ##### This:

  - {EventTarget}

  ##### Parameters:

  Name | Type | Attributes | Description
  --- | --- | --- | ---
  `event` | EventTarget~Event |  | the event that triggered this function
  `hash` | Object | <optional> | hash of data sent during the event