I’m sure there are a million posts about this out there, but surprisingly I’m having trouble finding something.
I have a simple script where I want to set the onClick handler for an <A> link on initialization of the page.
When I run this I immediately get a ‘foo’ alert box where I expected to only get an alert when I click on the link.
What stupid thing am I doing wrong? (I’ve tried click= and onClick=)…
<script language='javascript'> function init(){ document.getElementById('foo').click = new function() { alert('foo'); }; } </script> <body onload='init()'> <a id='foo' href=#>Click to run foo</a> </body>
Edit: I changed my accepted answer to a jQuery answer. The answer by ‘Már Örlygsson‘ is technically the correct answer to my original question (click should be onclick and new should be removed) but I strongly discourage anyone from using ‘document.getElementById(…) directly in their code – and to use jQuery instead.
jQuery:
Or if you don’t want it to follow the link href: