return false与e.preventDefault()的区别
jQuery
在jQuery的事件处理函数里,
$("div").on("click",function(e) {
//处理代码
return false;
});
等同于
$("div").on("click",function(e) {
//处理代码
e.preventDefault();
e.stopPropagation():
});
- e.preventDefault():终止事件的默认行为发生。
- e.stopPropagation():终止事件继续冒泡向上传递。
这里两者有一点不同的是:
return false:只能在函数的最后执行
e.preventDefault():可以提前放到函数的第一行,这样就可以一进入函数便可终止事件的默认行为。
原生JavaScript(非jQuery)
根据W3C Document Object Model Events Specification 定义,JavaScript的事件处理函数是没有返回值的。所以推荐在原生的JavaScript处理事件时,使用e.preventDefault()来终止事件的默认行为。