Javascript 返回false,e.preventDefault()不';行不通
我正在读一篇关于javascript的文章 我创建了一个小示例: html:Javascript 返回false,e.preventDefault()不';行不通,javascript,javascript-events,Javascript,Javascript Events,我正在读一篇关于javascript的文章 我创建了一个小示例: html: <a id="href1" href="https://www.google.ru/">1</a> <a id="href2" href="https://www.google.ru/">2</a> 我希望我将看到警报,并且不会执行重定向。在本地PC上,我看不到警报,但会发生重定向。 我做错了什么? 像这样使用addEventListener: var href2 =
<a id="href1" href="https://www.google.ru/">1</a>
<a id="href2" href="https://www.google.ru/">2</a>
我希望我将看到警报,并且不会执行重定向。在本地PC上,我看不到警报,但会发生重定向。我做错了什么?
像这样使用
addEventListener
:
var href2 = document.getElementById('href2');
href2.addEventListener("click", function (e) {
e.preventDefault();
alert("href2");
});
第一个示例使用
onClick
,但应该使用onClick
。JavaScript和DOM区分大小写。但是我不会使用onclick
第二个例子应该是:
href2.addEventListener("click", function (e) {
e.preventDefault();
alert("href2");
}, false);
警报
之前要防止默认设置,因为警报
是一件非常奇怪的事情,在某些浏览器(如Firefox)上有奇怪的行为旁注:我强烈建议不要依赖通过给元素
id
s创建的自动全局变量。是的,它是(现在)指定的行为,但是全局名称空间太拥挤了,冲突很容易发生,也很难诊断。改用document.getElementById
:
document.getElementById("href2").addEventListener(...
@Downvoter,澄清原因?你考虑过使用jQuery吗?@Jonathan Wheeler首先我需要学习真正的javascript
onClick!==单击
案例事项。而在这本书中,没有任何地方显示出这种语法。您真的应该声明变量,而不是直接通过ID引用元素。@T.J.Crowder非常感谢您的澄清。请用我的示例解释差异解释:这里的答案使用了与原始代码不同的正确语法。lol,thanx用于解释<代码>addEventListener=(“单击”
document.getElementById("href2").addEventListener(...