There’s a lot of syntax to remember when dealing with JS events, so I figured it would be a good idea to compile a reference list that covers all types of events and the proper syntax to use them.

Internet Explorer has its own set of rules compared to Firefox, Chrome, Safari, and Opera. I will refer to non-IE browsers as “W3C browsers,” since there’s not really any other term that collectively refers to them.

How to Use this Reference

At the top of each block is a big event name. Click it to collapse/expand blocks. Under the name, you will see the list of valid elements that can use it. These vary by browser.

Code snippets are broken down by browser and registration type (traditional or advanced). The traditional (or inline) type means that you will overwrite any existing handler. The advanced method can add additional listeners and handlers.

For all examples, “myFunction” is the name of my fake event handler. Also, for W3C’s addEventListener, I leave useCapture as “false”. Look that stuff up if you need more info.

For easy viewing, you may want to - collapse the entire list.

CLICK toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onclick = myFunction;
Remove - element.onclick = null;
IE only Adds New Add + element.attachEvent("onclick",myFunction);
Remove - element.detachEvent("onclick",myFunction);
W3C Only Adds New Add + element.addEventListener("click",myFunction,"false");
Remove - element.removeEventListener("click",myFunction,"false");

DOUBLE CLICK toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.ondblclick = myFunction;
Remove - element.ondblclick = null;
IE only Adds New Add + element.attachEvent("ondblclick",myFunction);
Remove - element.detachEvent("ondblclick",myFunction);
W3C Only Adds New Add + element.addEventListener("dblclick",myFunction,"false");
Remove - element.removeEventListener("dblclick",myFunction,"false");

LOAD toggle open

All Browsers valid on window only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + window.onload = myFunction;
Remove - window.onload = null;
IE only Adds New Add + window.attachEvent("onload",myFunction);
Remove - window.detachEvent("onload",myFunction);
W3C Only Adds New Add + window.addEventListener("load",myFunction,"false");
Remove - window.removeEventListener("load",myFunction,"false");

UNLOAD toggle open

All Browsers valid on window only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + window.onunload = myFunction;
Remove - window.onunload = null;
IE only Adds New Add + window.attachEvent("onunload",myFunction);
Remove - window.detachEvent("onunload",myFunction);
W3C Only Adds New Add + window.addEventListener("unload",myFunction,"false");
Remove - window.removeEventListener("unload",myFunction,"false");

MOUSE MOVE toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onmousemove = myFunction;
Remove - element.onmousemove = null;
IE only Adds New Add + element.attachEvent("onmousemove",myFunction);
Remove - element.detachEvent("onmousemove",myFunction);
W3C Only Adds New Add + element.addEventListener("mousemove",myFunction,"false");
Remove - element.removeEventListener("mousemove",myFunction,"false");

MOUSE OVER toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onmouseover = myFunction;
Remove - element.onmouseover = null;
IE only Adds New Add + element.attachEvent("onmouseover",myFunction);
Remove - element.detachEvent("onmouseover",myFunction);
W3C Only Adds New Add + element.addEventListener("mouseover",myFunction,"false");
Remove - element.removeEventListener("mouseover",myFunction,"false");

MOUSE OUT toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers outwrites Add + element.onmouseout = myFunction;
Remove - element.onmouseout = null;
IE only Adds New Add + element.attachEvent("onmouseout",myFunction);
Remove - element.detachEvent("onmouseout",myFunction);
W3C Only Adds New Add + element.addEventListener("mouseout",myFunction,"false");
Remove - element.removeEventListener("mouseout",myFunction,"false");

MOUSE DOWN toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onmousedown = myFunction;
Remove - element.onmousedown = null;
IE only Adds New Add + element.attachEvent("onmousedown",myFunction);
Remove - element.detachEvent("onmousedown",myFunction);
W3C Only Adds New Add + element.addEventListener("mousedown",myFunction,"false");
Remove - element.removeEventListener("mousedown",myFunction,"false");

MOUSE UP toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onmouseup = myFunction;
Remove - element.onmouseup = null;
IE only Adds New Add + element.attachEvent("onmouseup",myFunction);
Remove - element.detachEvent("onmouseup",myFunction);
W3C Only Adds New Add + element.addEventListener("mouseup",myFunction,"false");
Remove - element.removeEventListener("mouseup",myFunction,"false");

MOUSE WHEEL toggle open

Microsoft Support document, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
IE or Opera Overwrites Add + element.onmousewheel = myFunction;
Remove - element.onmousewheel = null;
IE or Opera Adds New Add + element.attachEvent("onmousewheel",myFunction);
Remove - element.detachEvent("onmousewheel",myFunction);
Everyone Else Adds New Add + element.addEventListener("DOMMouseScroll",myFunction,"false");
Remove - element.removeEventListener("DOMMouseScroll",myFunction,"false");

KEY PRESS toggle open

Microsoft Support document, any element
W3C Support window, document, form elements
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onkeypress = myFunction;
Remove - element.onkeypress = null;
IE only Adds New Add + element.attachEvent("onkeypress",myFunction);
Remove - element.detachEvent("onkeypress",myFunction);
W3C Only Adds New Add + element.addEventListener("keypress",myFunction,"false");
Remove - element.removeEventListener("keypress",myFunction,"false");

KEY DOWN toggle open

Microsoft Support document, any element
W3C Support window, document, form elements
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onkeydown = myFunction;
Remove - element.onkeydown = null;
IE only Adds New Add + element.attachEvent("onkeydown",myFunction);
Remove - element.detachEvent("onkeydown",myFunction);
W3C Only Adds New Add + element.addEventListener("keydown",myFunction,"false");
Remove - element.removeEventListener("keydown",myFunction,"false");

KEY UP toggle open

Microsoft Support document, any element
W3C Support window, document, form elements
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onkeyup = myFunction;
Remove - element.onkeyup = null;
IE only Adds New Add + element.attachEvent("onkeyup",myFunction);
Remove - element.detachEvent("onkeyup",myFunction);
W3C Only Adds New Add + element.addEventListener("keyup",myFunction,"false");
Remove - element.removeEventListener("keyup",myFunction,"false");

SCROLL toggle open

Microsoft Support window, any element
W3C Support window, document, any element
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onscroll = myFunction;
Remove - element.onscroll = null;
IE only Adds New Add + element.attachEvent("onscroll",myFunction);
Remove - element.detachEvent("onscroll",myFunction);
W3C Only Adds New Add + element.addEventListener("scroll",myFunction,"false");
Remove - element.removeEventListener("scroll",myFunction,"false");

FOCUS toggle open

Microsoft Support window, any element
W3C Support window, document, form elements
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onfocus = myFunction;
Remove - element.onfocus = null;
IE only Adds New Add + element.attachEvent("onfocus",myFunction);
Remove - element.detachEvent("onfocus",myFunction);
W3C Only Adds New Add + element.addEventListener("focus",myFunction,"false");
Remove - element.removeEventListener("focus",myFunction,"false");

BLUR toggle open

Microsoft Support window, any element
W3C Support window, document, form elements
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onblur = myFunction;
Remove - element.onblur = null;
IE only Adds New Add + element.attachEvent("onblur",myFunction);
Remove - element.detachEvent("onblur",myFunction);
W3C Only Adds New Add + element.addEventListener("blur",myFunction,"false");
Remove - element.removeEventListener("blur",myFunction,"false");

CHANGE toggle open

All Browsers valid on form elements only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onchange = myFunction;
Remove - element.onchange = null;
IE only Adds New Add + element.attachEvent("onchange",myFunction);
Remove - element.detachEvent("onchange",myFunction);
W3C Only Adds New Add + element.addEventListener("change",myFunction,"false");
Remove - element.removeEventListener("change",myFunction,"false");

SELECT toggle open

All Browsers valid on form elements only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + element.onselect = myFunction;
Remove - element.onselect = null;
IE only Adds New Add + element.attachEvent("onselect",myFunction);
Remove - element.detachEvent("onselect",myFunction);
W3C Only Adds New Add + element.addEventListener("select",myFunction,"false");
Remove - element.removeEventListener("select",myFunction,"false");

RESET toggle open

All Browsers valid on form tag only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + form.onreset = myFunction;
Remove - form.onreset = null;
IE only Adds New Add + form.attachEvent("onreset",myFunction);
Remove - form.detachEvent("onreset",myFunction);
W3C Only Adds New Add + form.addEventListener("reset",myFunction,"false");
Remove - form.removeEventListener("reset",myFunction,"false");

SUBMIT toggle open

All Browsers valid on form tag only
BROWSERS TYPE SYNTAX
All Browsers Overwrites Add + form.onsubmit = myFunction;
Remove - form.onsubmit = null;
IE only Adds New Add + form.attachEvent("onsubmit",myFunction);
Remove - form.detachEvent("onsubmit",myFunction);
W3C Only Adds New Add + form.addEventListener("submit",myFunction,"false");
Remove - form.removeEventListener("submit",myFunction,"false");