浏览器中有不少异步事件,如click,mouseenter,mouseover等等,当用户执行相应操做以后,触发这个事件,而后执行相应的事件处理函数,通常状况下,咱们能够经过三种方式给元素添加事件处理函数:javascript
// HTML事件处理函数: <input type="button" onclick="return false" /> // DOM0级事件处理函数: element.onclick = function (){ return false; } // DOM2级事件处理函数: element.addEventListener(function(){ return false; }, false);
以上使咱们根据咱们实际的需求添加相应的事件处理函数,可是有些事件,即便你不人为添加相应的事件处理程序,触发相应事件后,浏览器也会进行相应的处理,这就是——事件默认行为(default action)。java
一般状况下,默认行为是根据用户的下一步操做执行,如mousedown事件,若是用户此时鼠标在文本上进行移动,此时默认行为是选择文本;若是是在图片上,则是退拽图片。浏览器
然而有的时候,这些默认行为使咱们不想发生的,好比在页面上,咱们不想拖拽图片后,从新再另一个窗口中展现该图片,这个时候,咱们就须要取消这些默认行为。异步
在W3C标准中提出,可使用preventDefalut()方法来禁止事件的默认行为,可是在咱们实际开发过程当中,有时候却能够看到使用return false来取消事件默认行为。一下引用W3C中的一段话:函数
Many implementations additionally interpret an event listener’s return value, such as the value
false
, to mean that the default action of cancelable events will be cancelled (thoughwindow.onerror
handlers are cancelled by returningtrue
).spa
这段话中,咱们能够知道,在实际的实现过程当中(浏览器中),额外添加了经过return value的方法来取消默认行为。这里特地强调,并不仅是return false 是会取消默认行为,有时候return true也会有一样的效果。可是在大多数状况下,咱们都会使用return false来取消默认事件。code
附上W3C文档地址:https://www.w3.org/TR/DOM-Level-3-Events/#event-flow-default-cancelblog
补充:使用时,同时能够中止冒泡行为。seo