0
<button type="button">Click Me!</button> 

<script>   
    document.getElementsByTagName('button')[0].addEventListener('click', function(e {
        e.preventDefault();
        alert('hello1');
    }, false);
</script>

我试图理解e.preventDefault();,我知道如果调用此方法,则不会触发事件的默认操作。所以我的问题是:

对于上面的代码,这里似乎e.preventDefault();没有做任何事情。那么上述事件的默认操作是什么:getElementsByTagName('button')[0].click

4

2 回答 2

2

HTML 中元素的默认操作在 HTML5 规范中定义。交互内容部分描述了如何响应交互,包括激活(点击)事件被取消和未被取消时的操作,以及各个交互元素(列在本部分顶部)已定义的激活行为。的激活行为<button>说(强调):

当按钮元素未被禁用时,其激活行为元素将针对元素的 type 属性的当前状态运行以下列表中定义的步骤:

提交按钮

如果元素具有表单所有者,则该元素必须从按钮元素提交表单所有者。

复位按钮

如果元素具有表单所有者,则该元素必须重置表单所有者。

按钮

没做什么。

于 2013-07-03T02:06:39.163 回答
-3

e.preventDefault() 防止事件进一步传播。例如,在上面的代码中,如果元素上有一个 onclick 处理程序,那么如果没有 e.preventDefault(),则将调用该元素的 onclick 处理程序。按钮的 onclick 事件将始终被触发,因为您无法停止已经发生的事情,但您可以停止尚未发生的事件 --- 在本例中为 body 的 onclick 事件。

于 2013-07-03T02:01:20.313 回答