我正在学习 Lynda.com 上有关新 DOM 事件模型的教程。
这是我正在使用的代码。
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);
我将其添加到此链接的点击事件中
<a href="#" title="click me" id="clickLink">Click Me!</a>
它在 IE、Firefox、Opera 中运行良好,但在 Chrome 中却不行。我环顾四周,但还没有找到任何具体的东西。一些类似的问题,但它没有回答我的问题。
我从 Chrome 控制台收到以下错误:
Uncaught TypeError: Object [object HTMLAnchorElement] has no method 'attachEvent'
有任何建议或答案链接吗?
最佳答案
你为什么要测试:
if (typeof (window.event) != "undefined")
...为了决定是否使用attachEvent()
? Chrome 确实定义了 window.event
,因此您的代码会尝试使用未定义的 attachEvent()
。
尝试直接测试该方法:
if (oNode.attachEvent)
oNode.attachEvent("on" + sEvt, fFunc);
else
oNode.addEventListener(sEvt, fFunc, bCapture);
关于javascript - Chrome 中的 addEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15968224/