gpt4 book ai didi

javascript - event.returnValue 在 IE7 中给我一个错误

转载 作者:行者123 更新时间:2023-12-02 18:34:20 25 4
gpt4 key购买 nike

所以我从错误开始,因为 e.preventDefault 在 IE7 中不起作用。我发现event.preventDefault() function not working in IE在这里并实现了答案 - 问题在于哪里

event.returnValue = false; 

似乎对那里的其他人都有效,但对我不起作用!我也放进去

if (event.returnValue) {
alert();
}

并且没有收到任何警报。这是我的代码

$('#share a').click(function(e){

if (event.preventDefault) {
event.preventDefault();
} else {
window.event.returnValue = false;
}

if ($(this).parent('li').hasClass('email')) {
window.open(this.href,'share-this','height=750,width=500,status=no,toolbar=no');
} else {
window.open(this.href,'share-this','height=400,width=500,status=no,toolbar=no');
}
}

当我单击该链接时,我在 IE7 的三元运算符行中收到无效参数错误。我知道它正在点击 event.returnValue = false;因为我在那里放置了一个警报来调试。

有什么想法吗?

最佳答案

三元运算符不是这样工作的。本声明:

event.preventDefault ? event.preventDefault() :  event.returnValue = false;

无效。您应该使用:

if(event.preventDefault)
event.preventDefault();
else
event.returnValue = false;

三元运算符用作右值,而不是一般的 if/else 语句替换。

此外,对于 IE < 9,您应该使用全局 window.event (window.event.returnValue)。

更新

实际上,三元运算符的工作方式似乎与 JavaScript 中的类似(因此它不是无效)。根据 ECMA 规范和恕我直言,它仍然是一个“作弊”,它损害了代码的可读性(至少对于能够区分左值和右值的程序员来说)。

关于javascript - event.returnValue 在 IE7 中给我一个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17487132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com