rav*_*404 116 javascript addeventlistener internet-explorer-8
我动态创建了一个复选框.我曾经addEventListener在点击复选框时调用了一个函数,该复选框适用于Google Chrome和Firefox,但在Internet Explorer 8中不起作用.这是我的代码:
var _checkbox = document.createElement("input");
_checkbox.addEventListener("click", setCheckedValues, false);
Run Code Online (Sandbox Code Playgroud)
setCheckedValues 是我的事件处理程序.
Sud*_*oti 213
尝试:
if (_checkbox.addEventListener) {
_checkbox.addEventListener("click", setCheckedValues, false);
}
else {
_checkbox.attachEvent("onclick", setCheckedValues);
}
Run Code Online (Sandbox Code Playgroud)
更新:: 对于IE9之前的Internet Explorer版本,应使用attachEvent方法将指定的侦听器注册到调用它的EventTarget,对于其他应使用addEventListener.
Zet*_*eta 43
您必须attachEvent在IE9之前的IE版本中使用.检测是否addEventListener已定义,attachEvent如果不是,则使用:
if(_checkbox.addEventListener)
_checkbox.addEventListener("click",setCheckedValues,false);
else
_checkbox.attachEvent("onclick",setCheckedValues);
// ^^ -- onclick, not click
Run Code Online (Sandbox Code Playgroud)
请注意,IE11将删除attachEvent.
也可以看看:
Ser*_*nko 13
这也是简单的crossbrowser解决方案:
var addEvent = window.attachEvent||window.addEventListener;
var event = window.attachEvent ? 'onclick' : 'click';
addEvent(event, function(){
alert('Hello!')
});
Run Code Online (Sandbox Code Playgroud)
当然,取代"点击"可以是任何事件.