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

相关文章
相关标签/搜索