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 相关文章推荐
多浏览器支持的右下角浮动窗口
Apr 01 Javascript
javascript深入理解js闭包
Jul 03 Javascript
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
js 控制图片大小核心讲解
Oct 09 Javascript
BootStrap文件上传样式超好看【持续更新】
May 10 Javascript
JavaScript:Date类型全面解析
May 19 Javascript
javascript中BOM基础知识总结
Feb 14 Javascript
微信小程序实现文字跑马灯效果
May 26 Javascript
详解vue.js根据不同环境(正式、测试)打包到不同目录
Jul 13 Javascript
JavaScript代码调试方法实例小结
Jan 05 Javascript
ES6 async、await的基本使用方法示例
Jun 06 Javascript
谈谈JavaScript中的函数
Sep 08 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php实现监听事件
2013/11/06 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP框架性能测试报告
2016/05/08 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
jsTree使用记录实例
2016/12/01 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
详解vue中async-await的使用误区
2018/12/05 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
Python bytes string相互转换过程解析
2020/03/05 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Eton丹麦官网:精美的男式衬衫
2020/05/27 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
Linux文件操作命令都有哪些
2016/07/23 面试题
满月酒答谢词
2014/01/14 职场文书
安全协议书
2014/04/23 职场文书
新学期开学演讲稿
2014/05/24 职场文书
入团介绍人意见范文
2015/06/04 职场文书
保护地球的宣传语
2015/07/13 职场文书
Python中的socket网络模块介绍
2022/07/23 Python