addEventListener 在 IE8 中不起作用

我动态创建了一个复选框。我曾经在单击复选框时调用一个函数,该函数在Google Chrome和Firefox中起作用,但在Internet Explorer 8中不起作用。这是我的代码:addEventListener

var _checkbox = document.createElement("input");
_checkbox.addEventListener("click", setCheckedValues, false);

setCheckedValues是我的事件处理程序。


答案 1

尝试:

if (_checkbox.addEventListener) {
    _checkbox.addEventListener("click", setCheckedValues, false);
}
else {
    _checkbox.attachEvent("onclick", setCheckedValues);
}

更新::对于 IE9 之前的 Internet Explorer 版本,应使用 attachEvent 方法将指定的侦听器注册到调用它的事件目标,对于其他版本,应使用 addEventListener


答案 2

您必须在 IE9 之前的 IE 版本中使用。检测是否已定义,如果未定义,请使用:attachEventaddEventListenerattachEvent

if(_checkbox.addEventListener)
    _checkbox.addEventListener("click",setCheckedValues,false);
else
    _checkbox.attachEvent("onclick",setCheckedValues);
//                         ^^ -- onclick, not click

请注意,IE11 将删除附加事件

另请参阅: