瀏覽器中有不少異步事件,如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