Skip to content

Instantly share code, notes, and snippets.

@Raynos
Created April 5, 2012 01:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save Raynos/2307163 to your computer and use it in GitHub Desktop.
Save Raynos/2307163 to your computer and use it in GitHub Desktop.
function createEvent(type, bubbles, cancelable) {
var ev
bubbles = bubbles || true
cancelable = cancelable || true
if (document.createEvent) {
ev = document.createEvent("Event")
ev.initEvent(type, bubbles, cancelable)
} else if (document.createEventObject) {
ev = document.createEventObject()
} else {
ev = {}
}
return ev
}
function dispatchEvent(et, event) {
var ev
if (typeof event !== "string") {
ev = event
} else if (event) {
ev = createEvent(event)
}
if (et.dispatchEvent) {
return et.dispatchEvent(ev)
} else if (et.fireEvent) {
return et.fireEvent("on" + type, ev)
} else if (typeof et["on" + type] === "function") {
return et["on" + type](ev)
}
return new Error("Cannot dispatch event")
}
function addEventListener(et, type, callback, capture) {
if (et.addEventListener) {
et.addEventListener(type, callback, capture || false)
} else if (et.attachEvent) {
et.attachEvent("on" + type, callback)
} else if (typeof et["on" + type] !== "undefined") {
et["on" + type] = callback
}
}
function removeEventListener(et, type, callback, capture) {
if (et.removeEventListener) {
et.removeEventListener(type, callback, capture || false)
} else if (et.detachEvent) {
et.detachEvent("on" + type, callback)
} else if (et["on" + type] === callback) {
et["on" + type] = null
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment