简体   繁体   中英

addEventListener not working in Chrome

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, Opra 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 sugestions or a link to the answer.

thanks in advance.

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM