深入了解preventDefault与stopPropagation
event.preventDefault()用法介绍(阻止默认事件)
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。
例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。
注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
例子:
 $("a").click(function (e) {
         alert("默认行为被禁止喽");
         e.preventDefault();
     });
 <a href="http://www.baidu.com">测试</a>
event.stopPropagation()用法介绍(阻止冒泡)
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。
注意:虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。
event是DOM的事件方法,所以不是单独使用,比如指定DOM
<div id="A">
<div id="B">
</div>
</div>
<script>
var a = document.getElementById('A'),
b = document.getElementById('B');
function handlera (e) {
console.log(e.target);
}
function handler (e) {
console.log(e.target);
e.stopPropagation();
}
b.addEventListener('click', handler, false);
a.addEventListener('click', handlera, false);
</script>
点击B,输出:
<div id="B"></div>
1 <div id="A">
<div id="B">
</div>
</div>
<script>
var a = document.getElementById('A'),
b = document.getElementById('B');
function handlera (e) {
console.log(e.target + 'a');
}
function handler (e) {
console.log(e.target + 'b');
}
b.addEventListener('click', handler, false);
a.addEventListener('click', handlera, false);
</script>
点击B时,输出:
[object HTMLDivElement]b
[object HTMLDivElement]a
以上例子,不难看出stopPropagation()功能就是阻止了冒泡,上面第二个例子中,没有用这个方法阻止冒泡,当点击子元素时,由于事件冒泡,触发了父元素的click事件,所以第二个例子中会多出现一次输出内容,即为:触发A元素点击事件的输出内容。
jquery中return false等效于同时调用e.preventDefault()和e.stopPropagation();
return false除了阻止默认行为之外,还会阻止事件冒泡。如果手上有一份jquery源代码的话,可查看其中有如下代码:
 if(ret===false){
     event.preventDefault();
     event.stopPropagation();
 }
以上就是我对preventDefault与stopPropagation的了解,有很多的不足,请大家多多指出,多多留言,谢谢!!!
深入了解preventDefault与stopPropagation的更多相关文章
- js中的preventDefault与stopPropagation详解
		
本篇文章主要是对js中的preventDefault与stopPropagation进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 首先讲解一下js中preventDefault和stopP ...
 - preventDefault()、stopPropagation()、return false 之间的区别
		
“return false”之所以被误用的如此厉害,是因为它看起来像是完成了我们交给它的工作,浏览器不会再将我们重定向到href中的链接,表单也不会被继续提交,但这么做到底有什么不对呢? 可能在你刚开 ...
 - js中的preventDefault和stopPropagation
		
首先讲解一下js中preventDefault和stopPropagation两个方法的区别: preventDefault方法的起什么作用呢?我们知道比如<a href=" ...
 - javascript中间preventDefault与stopPropagation角色介绍
		
preventDefault的作用是什么方法,它? 我们知道,例如,<a href="http://www.baidu.com">百度</a>,这是html ...
 - preventDefault 和 stopPropagation
		
概述 以前开发项目的时候,总是分不清楚 preventDefault 和 stopPropagation,每次都是用 @click.stop试一下,不能就用@click.prevent试一下.今天来好 ...
 - e.preventDefault() e.stopPropagation()和return false的区别
		
e.preventDefault(); //阻止事件的默认行为,比如a标签的转向,但不阻止事件的冒泡传播e.stopPropagation() //阻止事件的冒泡传播,但不阻止其默认行为returne ...
 - JS preventDefault ,stopPropagation ,return false
		
所谓的事件有两种:监听事件和浏览器对特殊标签元素的默认行为事件.监听事件:在节点上被监听的事件操作,如 select节点的change事件,a节点的click事件.浏览器的默认事件:特定页面元素上带的 ...
 - js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false
		
preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认行为.既然是说默认行为,当然是元素必须有默认行为才能被取消,如果元素本身就 ...
 - jQuery中的 return false, e.preventDefault(), e.stopPropagation()的区别
		
e.stopPropagation()阻止事件冒泡 <html><head> <title></title> <script sr ...
 
随机推荐
- leetcode-[3]Max Points on a Line
			
Given n points on a 2D plane, find the maximum number of points that lie on the same straight line 思 ...
 - X Window(远程桌面)
			
X Window在位映射屏幕上的一个或多个窗口中运行程序.用户可以在每个窗口中同时运行多个程序,并且可以通过用鼠标在窗口之间进行切换. x服务器的程序在本地工作站上运行,并且管理它的窗口和程序. 每个 ...
 - 一个支持邮件带附件群发的java类
			
import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.Date;import ...
 - POJ3046--Ant Counting(动态规划)
			
Bessie was poking around the ant hill one day watching the ants march to and fro while gathering foo ...
 - VS IDE 中Visual C++ 中的项目属性配置
			
VS IDE 中Visual C++ 中的项目属性配置 一. Visual C++ 项目系统基于 MSBuild. 虽然可以直接在命令行上编辑 XML 项目文件和属性表,我们仍建议你使用 VS IDE ...
 - 转载:$(function() {}),即$(document).ready(function(),什么时候执行?以此为准,真理
			
转载:https://blog.csdn.net/Ideality_hunter/article/details/77935656 $(function() { //执行操作 }); $(functi ...
 - bootstrap table 前端搜索
			
1.bootstrap-table对于前端的搜索可以通过官网设置,但发现前端搜索出现bug,网上找到一个bootstrap-table的扩充js bootstrap-table-mytoolbar. ...
 - poj 2046&&poj1961KMP 前缀数组
			
Power Strings Time Limit: 3000 MS Memory Limit: 65536 KB 64-bit integer IO format: %I64d , %I64u Jav ...
 - PL/SQL客户端连Oracle很快就断开问题的解决
			
PL/SQL登录很短时间session就自动断开 1.首先查看你这个用户的profile文件 select profile from dba_users where username='USERNAM ...
 - Mac下替代Total Commander的工具推荐
			
[推荐]:Nimble Commander 轻量小巧,免费版与收费版区别不大,比较稳定,支持sftp等其他网络存储,支持自定义热键,预览等. http://magnumbytes.com/ [其他]: ...