Javascript IE8.attachEvent()错误

Javascript IE8.attachEvent()错误,javascript,jquery,internet-explorer-8,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('r

我使用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')


我原以为这样可以解决问题,但我仍然得到了错误。

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

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


如果您使用的是jQuery,您可能需要检查
HTMLElement.prototype.addEventListener的存在性,然后使用
$
将其转换为不支持该接口的jQuery对象

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

如果您使用的是jQuery,您可能希望

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

(固定)

试试这个:

$('#open-right').click(function(e) {
    if (snapper.state().state == "right") {
        snapper.close();
    }
    else {
        snapper.open('right');
    }
    e.preventDefault();
});
哇。。。 尝试阅读jQuery的文档(您混合使用jQuery和纯js指令)

(固定)

试试这个:

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

如果您使用的是jQuery,那么为什么不使用
.on()
绑定click事件呢?是的,你不必检查ie和其他浏览器。这在非ie浏览器中有效吗?如果真是这样,我会感到惊讶的。。(jQuery没有定义一个
addEventListener
,所以在“else”的情况下它也会失败;可笑的检查是为了处理跨浏览器兼容性问题,jQuery已经处理了这个问题)感谢指针,我需要回到开头,学习jQuery的基础知识。如果您使用jQuery,为什么不使用
.on()
绑定单击事件?是的,你不必检查ie和其他浏览器。这在非ie浏览器中有效吗?如果真是这样,我会感到惊讶的。。(jQuery没有定义一个
addEventListener
,所以在“else”的情况下它也会失败;荒谬的检查是为了处理跨浏览器兼容性问题,jQuery已经处理了这个问题)感谢这些指针,我需要回到开始,学习jQuery的基本知识。你完全正确,我盯着我的代码看了好长时间,甚至没有注意到这一点。有时候,我需要一双新的眼睛!谢谢。你完全正确,我盯着我的代码看了好长时间,都没注意到。有时候,我需要一双新的眼睛!谢谢。谢谢你的回答,我当然需要仔细阅读jQuery!谢谢你的回答,我当然需要仔细阅读jQuery!