IE8 .attachEvent()错误

时间:2014-03-03 13:48:46

标签: javascript jquery internet-explorer-8

我正在使用这个jQuery来启用页面上的按钮来切换div。

var SnapEnable = document.getElementById('open-right');
$(SnapEnable).addEventListener("click", function() {
    if (snapper.state().state == "right") {
        snapper.close();
    }
    else {
        snapper.open('right');
    }
});

我在IE8中遇到错误,这段代码“对象不支持此属性或方法”。所以我将代码更新到下面:     var SnapEnable = document.getElementById('open-right');

if (!SnapEnable.addEventListener) {
    $(SnapEnable).attachEvent("onclick", function() {
    if (snapper.state().state == "right") {
        snapper.close();
    }
    else {
        snapper.open('right');
        }
    });
}
else {
    $(SnapEnable).addEventListener("click", function() {
    if (snapper.state().state == "right") {
        snapper.close();
    }
    else {
        snapper.open('right');
        }
});
};

我认为这样可以解决问题,但我仍然会收到错误。

2 个答案:

答案 0 :(得分:5)

您正在检查HTMLElement.prototype.addEventListener的存在,然后使用$将其转换为不支持该接口的 jQuery对象

这是SnapEnable$(SnapEnable)之间的区别。

如果你正在使用 jQuery ,你可能想要.on

答案 1 :(得分:3)

哇... 尝试阅读jQuery的文档(混合使用jQuery和纯js指令)......

(固定)

试试这个:

$('#open-right').click(function(e) {
    if (snapper.state().state == "right") {
        snapper.close();
    }
    else {
        snapper.open('right');
    }
    e.preventDefault();
});