How do I add an onclick function to a div in javascript?

javascript

Solution

Don't use setAttribute to set listeners, not all browsers allow that. Much better to either set the property directly:

document.getElementById('deck0').onclick = begin;

or use addEventListener:

document.getElementById('deck0').addEventListener('click', begin, false);

If you need to pass a parameter, then:

document.getElementById('deck0').onclick = function() {begin(i);};

similarly for addEventListener.

Note that earlier versions of IE don't support addEventListener so you will need a cross–browser function to feature test for support. Where lacking, test for attachEvent and fall back to the direct property method. Search for "addEvent" functions, there are plenty of examples.

Problem

I have a piece of javascript is meant to add an onclick event to a div. The div looks like this: ``` <div id="deck0" class="deck"></div> ``` And my javascript has: ``` var i = 1; document.getElementById('deck0').SetAttribute("onclick", "begin("+i+")"); ``` But I get this error: ``` Uncaught TypeError: Object #<HTMLDivElement> has no method 'SetAttribute' ``` Am I doing it right, or is what I am trying to achieve not possible?

Original source

Related problems