I am following a tutorial on Lynda.com about the new DOM event model.
This is the code I am working with.
function addEventHandler(oNode, sEvt, fFunc, bCapture){
if (typeof (window.event) != "undefined")
oNode.attachEvent("on" + sEvt, fFunc);
else
oNode.addEventListener(sEvt, fFunc, bCapture);
}
function onLinkClicked(e){
alert('You clicked the link');
}
function setUpClickHandler(){
addEventHandler(document.getElementById("clickLink"), "click", onLinkClicked, false);
}
addEventHandler(window, "load", setUpClickHandler, false);
I am adding it to the click event on this link
<a href="#" title="click me" id="clickLink">Click Me!</a>
It works perfectly fine in IE, Firefox, Opera but not in Chrome. I've looked around, but have not been able to find anything specific yet. Some similar questions but it does not answer my question.
I get the following error from the Chrome console:
Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'attachEvent'
Any suggestions or a link to the answer?
Why are you testing:
if (typeof (window.event) != "undefined")
...in order to decide whether to use attachEvent()
? Chrome does define window.event
, so then your code tries to use attachEvent()
which is not defined.
Try instead testing for the method directly:
if (oNode.attachEvent)
oNode.attachEvent("on" + sEvt, fFunc);
else
oNode.addEventListener(sEvt, fFunc, bCapture);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With