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 相关文章推荐
让getElementsByName适应IE和firefox的方法
Sep 24 Javascript
JavaScript EasyPager 分页函数
May 25 Javascript
Javascript字符串浏览器兼容问题分析
Dec 01 Javascript
JS中prototype的用法实例分析
Mar 19 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
Jun 19 Javascript
深入探讨javascript函数式编程
Oct 11 Javascript
详解AngularJS 模态对话框
Apr 07 Javascript
HTML5 canvas 9绘制图片实例详解
Sep 06 Javascript
JavaScript中捕获与冒泡详解及实例
Feb 03 Javascript
浅谈从React渲染流程分析Diff算法
Sep 08 Javascript
vue动态注册组件实例代码详解
May 30 Javascript
vue请求数据的三种方式
Mar 04 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
PHP怎样调用MSSQL的存储过程
2006/10/09 PHP
PHP 执行系统外部命令 system() exec() passthru()
2009/08/11 PHP
基于curl数据采集之正则处理函数get_matches的使用
2013/04/28 PHP
PHP Class&Object -- 解析PHP实现二叉树
2013/06/25 PHP
php ci框架验证码实例分析
2013/06/26 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
JavaScript中Date.toSource()方法的使用教程
2015/06/12 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
jquery $.trim()去除字符串空格的实现方法【附图例】
2016/03/30 Javascript
Jquery为DIV添加click事件的简单实例
2016/06/02 Javascript
jquery uploadify如何取消已上传成功文件
2017/02/08 Javascript
js判断手机系统是android还是ios
2017/03/07 Javascript
WdatePicker.js时间日期插件的使用方法
2017/07/26 Javascript
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
深入理解Promise.all
2018/08/08 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
零基础写python爬虫之使用Scrapy框架编写爬虫
2014/11/07 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
keras 如何保存最佳的训练模型
2020/05/25 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
OLEDBConnection和SQLConnection有什么区别
2013/05/31 面试题
车间工艺员岗位职责
2013/12/09 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
高三语文教学反思
2014/01/15 职场文书
音乐教学随笔感言
2014/02/19 职场文书
宣传标语大全
2014/07/01 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
股东合作协议书
2014/09/12 职场文书
房屋所有权证明
2015/06/19 职场文书
导游词之井冈山
2019/11/20 职场文书
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP