Javascript 返回false,e.preventDefault()不';行不通

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 =

我正在读一篇关于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 = 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);
  • 语法刚好不正确,应该在web控制台中给您一个错误

  • Paranoia告诉我在显示
    警报
    之前要防止默认设置,因为
    警报
    是一件非常奇怪的事情,在某些浏览器(如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(...