[英]Return false and e.preventDefault() doesn't work
我正在阅读有关 Javascript 的文章。
我创建了一个小例子:
html:
<a id="href1" href="https://www.google.ru/">1</a>
<a id="href2" href="https://www.google.ru/">2</a>
js:
href1.onClick = function () {
alert("href1");
return false;
}
href2.addEventListener = ("click", function (e) {
alert("href2");
e.preventDefault();
})
我预计我会看到警报并且不会执行重定向。 在我的本地 PC 上,我没有看到警报,但会发生重定向。
我做错了什么?
您的第一个示例使用onClick
,但应该使用onclick
。 JavaScript 和 DOM 区分大小写。 但我不会使用onclick
。
你的第二个例子应该是:
href2.addEventListener("click", function (e) {
e.preventDefault();
alert("href2");
}, false);
语法很差,应该在 Web 控制台中给你一个错误。
偏执狂告诉我在显示alert
之前阻止默认设置,因为alert
是一个非常奇怪的东西,并且在某些浏览器(如 Firefox)上有奇怪的行为。
旁注:我强烈建议不要依赖通过提供元素id
创建的自动全局变量。 是的,它是(现在)指定的行为,但全局命名空间太拥挤了,冲突很容易发生,也很难诊断。 使用document.getElementById
代替:
document.getElementById("href2").addEventListener(...
像这样使用addEventListener
:
var href2 = document.getElementById('href2');
href2.addEventListener("click", function (e) {
e.preventDefault();
alert("href2");
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.