return false;和e.preventDefault();的区别


Posted in Javascript onJuly 11, 2010

Have you ever seen those two things (in the title) being used in jQuery? Here is a simple example:

$("a").click(function() { 
$("body").append($(this).attr("href")); 
return false; 
}

That code would append the href attribute as text to the body every time a link was clicked but not actually go to that link. The return false; part of that code prevents the browser from performing the default action for that link. That exact thing could be written like this:
$("a").click(function(e) { 
$("body").append($(this).attr("href")); 
e.preventDefault(); 
}

So what's the difference?

The difference is that return false; takes things a bit further in that it also prevents that event from propagating (or “bubbling up”) the DOM. The you-may-not-know-this bit is that whenever an event happens on an element, that event is triggered on every single parent element as well. So let's say you have a box inside a box. Both boxes have click events on them. Click on the inner box, a click will trigger on the outer box too, unless you prevent propagation. Like this:
return false;和e.preventDefault();的区别
演示地址:http://css-tricks.com/examples/ReturnFalse/
So in other words:

function() { 
return false; 
} // IS EQUAL TO 
function(e) { 
e.preventDefault(); 
e.stopPropagation(); 
}

It's all probably a lot more complicated than this and articles like this probably explain it all a lot better.

参考:

1.The difference between ‘return false;' and ‘e.preventDefault();'
2.Event order

测试代码打包下载

Javascript 相关文章推荐
javascript的switch用法注意事项分析
Feb 02 Javascript
Jquery中map函数的用法
Jun 03 Javascript
AngularJS基础 ng-keydown 指令简单示例
Aug 02 Javascript
JavaScript中利用for循环遍历数组
Jan 15 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
Mar 05 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
Javascript之高级数组API的使用实例
Mar 08 Javascript
百度小程序自定义通用toast组件
Jul 17 Javascript
原生js实现的移动端可拖动进度条插件功能详解
Aug 15 Javascript
layui关闭层级、简单监听的实例
Sep 06 Javascript
JavaScript函数柯里化
Nov 07 Javascript
基于jQuery的树控件实现代码(asp.net+json)
Jul 11 #Javascript
js 模拟气泡屏保效果代码
Jul 10 #Javascript
浅谈javascript的数据类型检测
Jul 10 #Javascript
jquery nth-child()选择器的简单应用
Jul 10 #Javascript
SWFObject 2.1以上版本语法介绍
Jul 10 #Javascript
加载jQuery后$冲突的解决办法
Jul 09 #Javascript
在javascript将NodeList作为Array数组处理的方法
Jul 09 #Javascript
You might like
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
php+MySQL判断update语句是否执行成功的方法
2014/08/28 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jQuery中map()方法用法实例
2015/01/06 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
JS中对象与字符串的互相转换详解
2016/05/20 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
vue 组件开发原理与实现方法详解
2019/11/29 Javascript
解决Vue-Router升级导致的Uncaught (in promise)问题
2020/08/07 Javascript
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
基于python实现KNN分类算法
2020/04/23 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
2019/01/23 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Keras 中Leaky ReLU等高级激活函数的用法
2020/07/05 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
中国宠物用品商城:E宠商城
2016/08/27 全球购物
网络工程师面试(三木通信技术有限公司)
2013/06/05 面试题
应届毕业生自我鉴定范文
2013/12/27 职场文书
标准化管理实施方案
2014/02/25 职场文书
出生证明公证书
2014/04/09 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers