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 相关文章推荐
游戏人文件夹程序 ver 3.0
Jul 14 Javascript
autoPlay 基于jquery的图片自动播放效果
Dec 07 Javascript
Area 区域实现post提交数据的js写法
Apr 22 Javascript
IE8兼容Jquery.validate.js的问题
Dec 01 Javascript
Vue 过渡实现轮播图效果
Mar 27 Javascript
通过js控制时间,一秒一秒自己动的实例
Oct 25 Javascript
Vue-component全局注册实例
Sep 06 Javascript
JavaScript使用类似break机制中断forEach循环的方法
Nov 13 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
Jun 21 Javascript
vue 实现把路由单独分离出来
Aug 13 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
Nov 12 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 Class 文章
2007/04/04 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php生成图片验证码的实例讲解
2015/08/03 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
2015/09/23 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
jquery中ajax学习笔记4
2011/10/16 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
Node.js用readline模块实现输入输出
2016/12/16 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
vue自定义移动端touch事件之点击、滑动、长按事件
2018/07/10 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
Vue Router history模式的配置方法及其原理
2019/05/30 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
JavaScript enum枚举类型定义及使用方法
2020/05/15 Javascript
微信小程序实现锚点跳转
2020/11/23 Javascript
Python中的random()方法的使用介绍
2015/05/15 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
python应用文件读取与登录注册功能
2019/09/23 Python
Python pip 常用命令汇总
2020/10/19 Python
阿联酋电子产品购物网站:Menakart
2017/09/15 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
新闻编辑求职信
2014/04/09 职场文书
绿色环保标语
2014/06/12 职场文书
大学同学会活动方案
2014/08/20 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
车辆年检委托书范本
2014/10/14 职场文书
Nginx的反向代理实例详解
2021/03/31 Servers
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript