javascript事件中'return false'詳解

  瀏覽器中有不少異步事件,如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 (though window.onerror handlers are cancelled by returning true).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

相關文章
相關標籤/搜索