深入了解preventDefault与stopPropagation
event.preventDefault()用法介绍(阻止默认事件)
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。
例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。
注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。
例子:
1 $("a").click(function (e) { 2 alert("默认行为被禁止喽"); 3 e.preventDefault(); 4 }); 5 6 <a href="http://www.baidu.com">测试</a>
event.stopPropagation()用法介绍(阻止冒泡)
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点
该方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。
注意:虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。
event是DOM的事件方法,所以不是单独使用,比如指定DOM
1 <div id="A"> 2 <div id="B"> 3 </div> 4 </div> 5 <script> 6 var a = document.getElementById('A'), 7 b = document.getElementById('B'); 8 function handlera (e) { 9 console.log(e.target); 10 } 11 function handler (e) { 12 console.log(e.target); 13 e.stopPropagation(); 14 } 15 b.addEventListener('click', handler, false); 16 a.addEventListener('click', handlera, false); 17 </script>
点击B,输出:
1 <div id="B"></div>
1 <div id="A"> 2 <div id="B"> 3 </div> 4 </div> 5 <script> 6 var a = document.getElementById('A'), 7 b = document.getElementById('B'); 8 function handlera (e) { 9 console.log(e.target + 'a'); 10 } 11 function handler (e) { 12 console.log(e.target + 'b'); 13 } 14 b.addEventListener('click', handler, false); 15 a.addEventListener('click', handlera, false); 16 </script>
点击B时,输出:
1 [object HTMLDivElement]b 2 [object HTMLDivElement]a
以上例子,不难看出stopPropagation()功能就是阻止了冒泡,上面第二个例子中,没有用这个方法阻止冒泡,当点击子元素时,由于事件冒泡,触发了父元素的click事件,所以第二个例子中会多出现一次输出内容,即为:触发A元素点击事件的输出内容。
jquery中return false等效于同时调用e.preventDefault()和e.stopPropagation();
return false除了阻止默认行为之外,还会阻止事件冒泡。如果手上有一份jquery源代码的话,可查看其中有如下代码:
1 if(ret===false){ 2 event.preventDefault(); 3 event.stopPropagation(); 4 }
以上就是我对preventDefault与stopPropagation的了解,有很多的不足,请大家多多指出,多多留言,谢谢!!!
转载于:https://www.cnblogs.com/bo-haier/p/5644524.html
深入了解preventDefault与stopPropagation相关推荐
- js中的preventDefault与stopPropagation详解
1. preventDefault: 比如<a href="http://www.baidu.com">百度</a>,这是html中最基础的东西,起的作用就 ...
- js中的preventDefault与stopPropagation详解(转)
先讲解一下js中preventDefault和stopPropagation两个方法的区别: preventDefault方法的起什么作用呢?我们知道比如<a href="http:/ ...
- preventDefault与stopPropagation的作用
如题,本篇文章讨论preventDefault和stopPropagation二者的作用,首先,先理解一下二者的字面意思: 一.preventDefault,prevent是动词,意为"防止 ...
- 前端知识点(1)——preventDefault和stopPropagation
[preventDefault] (1)在表单中,点击"提交",即可提交表单,如果我们想要阻止这种表单的默认行为,即可使用preventDefault (2)a标签等的点击链接,点 ...
- js中preventDefault、stopPropagation、return false三者之间
2019独角兽企业重金招聘Python工程师标准>>> preventDefault: preventDefault它是事件对象(Event)的一个方法,作用是取消一个目标元素的默认 ...
- event.stopPropagation和event.preventDefault有什么区别?
他们似乎在做同样的事情--是现代的还是老的? 还是不同的浏览器支持它们? 当我自己处理事件(没有框架)时,我总是检查两者并执行(如果存在). (我也return false ,但是我感觉不适用于与no ...
- preventDefault, stopPropagation, stopImmediatePropagation 三者的区别
event事件对象有三种易混淆的方法,本文讲述他们之间的区别: Event.preventDefault() Event.stopPropagation() Event.stopImmediatePr ...
- return、reutrn false、e.preventDefault、e.stopPropagation、e.stopImmediatePropagation的区别
return var i = function(){ return } console.log(i())//undefined return的主要作用是阻止函数继续执行,直接返回undefined r ...
- [JavaScript]return false;和e.preventDefault();的区别
function() {return false; }// IS EQUAL TOfunction(e) {e.preventDefault();e.stopPropagation(); } 参考: ...
最新文章
- python连接服务器代码_python服务器端收发请求的实现代码
- cookie放在请求头_Web安全:你必须知道的“Cookie安全”
- 光学镜头行业发展现状及趋势,智能手机应用领域占比最高
- 优酷视频如何修改账号密码?
- 括号匹配不一定用栈哦(洛谷P1739题题解,Java语言描述)
- stone 的 log4j配置详解
- java版定时任务quartz【石英钟】
- iOS IM开发建议(一)App框架设计
- Mybatis resultMap空值映射问题解决
- 亲测!这款耳机堪比 AirPods,还不到 200 块!
- OpenCasCade标注显示类(独立)
- 车辆销售系统用例_销售管理系统的UML分析与设计
- html视频播放卡顿,网页看视频卡怎么解决
- excel软件的IF函数及其用法
- 7个实用方法,让你稳步提升记忆!
- 单击屏幕亮屏流程分析
- 键盘对应的ASCⅡ码
- 【Java-数据脱敏】使用Java对姓名、手机号码、证件号码进行数据脱敏
- php语言的应用领域,探讨主要的PHP应用领域
- 12件可能改变未来大事:人造生命到致命病毒