首页 > 其他分享 >JS阻止事件冒泡的方法

JS阻止事件冒泡的方法

时间:2024-08-03 11:18:22浏览次数:16  
标签:function JS 阻止 事件 stopPropagation event 冒泡

JS事件冒泡

在一个对象上触发某类事件(如单击onclick事件),如果此对象定义了此事件的处理程序,此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,这个事件会向这个对象的父级对象传播,从里到外,直至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层次的最顶层,即document对象(有些浏览器是window)。

<div id="one" onclick="alert('最外层');">
   <div id="two" onclick="alert('中间层!')">
    <a id="three" href="http://www.baidu.com"  onclick="alert('最里层!')">按钮</a>
  </div>
</div>

运行页面,点击“按钮”,会依次弹出:最里层---->中间层---->最外层 ---->链接到百度
只点击ID为three的标签,执行了三个alert操作,这就是事件冒泡。事件冒泡过程是从最里层冒泡到最外层。

JS阻止默认事件和冒泡的写法

阻止事件冒泡的兼容性写法

function stopPropagation(e){
    if(e && e.stopPropagation){
         e.stopPropagation()
   }else{
       window.event.cancelBubble = true;
   }
}

阻止事件默认行为

  function stopDefault(e){
    if(e && e.preventDefault){
        e.preventDefault();
    }else{
        window.event.returnValue = false;
    }
}

JS阻止事件冒泡的三种方法

  1. event.stopPropagation();  事件处理过程中,阻止了事件冒泡,但不会阻止默认行为
  2. return false;  事件处理过程中,阻止了事件冒泡,也阻止了默认行为
  3. event.preventDefault(); 事件处理过程中,不阻击事件冒泡,但阻击默认行为

阻止事件冒泡

  1. event.stopPropagation();  事件处理过程中,阻止了事件冒泡,但不会阻止默认行为(它就执行了超链接的跳转)
function() {
     $("#three").click(function(event) {
         event.stopPropagation();
    });
 }
  1. return false;  事件处理过程中,阻止了事件冒泡,也阻止了默认行为(它就没有执行超链接的跳转)
$(function() {
 $("#three").click(function(event) {
  return false;
 });
});
  1. event.preventDefault(); 事件处理过程中,不阻击事件冒泡,但阻击默认行为(它只执行所有弹框,却没有执行超链接跳转)
function() {
     $("#three").click(function(event) {
         event.preventDefault();
    });
 }

如果把event.preventDefault();放在头部A标签的click事件中,点击“点击我”,会发现它依次弹出:我是最里层---->我是中间层---->我是最外层,但最后却没有跳转

标签:function,JS,阻止,事件,stopPropagation,event,冒泡
From: https://www.cnblogs.com/itjeff/p/18340207

相关文章

  • shell获取敏感词接口json数据更新时重启nginx+lua环境、一个逐步删除服务器上文件夹的
    一、shell获取敏感词接口json数据如有更新重启nginx+lua环境    因为工作需要,需要写一个shell脚本获取对应接口的数据(其它管理后台控制的敏感词库)。因为当前平台是nginx+lua脚本,重装加载敏感词需要重启nginx.实现起来也很简单,第一点,需要对获取的json数据进行分析,shell......
  • 使用 abortNavigation 阻止导航
    title:使用abortNavigation阻止导航date:2024/8/3updated:2024/8/3author:cmdragonexcerpt:摘要:在Nuxt3中,abortNavigation是一个辅助函数,用于路由中间件内阻止不符合条件的页面访问,实现权限控制、错误处理及动态重定向,提升用户体验和应用可靠性categories:前端开......
  • 冒泡排序法
    1publicclassmaopao{2//编写一个main方法3publicstaticvoidmain(String[]args){45//冒泡排序6//要求从小到大7//要求从大到小8int[]arr={20,-1,89,2,890,7};910inttemp=0;//......
  • Day16_1--JSP了解学习之EL表达式语言入门教程
    JSP(JavaServerPages)是一个用于生成动态网页的技术。EL(ExpressionLanguage)是JSP中的一种表达式语言,用于简化JSP页面中的Java代码,使其更易于书写和阅读。下面是对JSPEL表达式语言的简要介绍。1.什么是EL?EL(表达式语言)是JSP2.0引入的一种语言,它提供了一种简单的方法来访......
  • jsp“宠爱”宠物医院管理系统43208
    jsp“宠爱”宠物医院管理系统43208本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能医生,客户信息,诊疗记录,化验记录,疫苗记录,美容记录,购买记录,宠物商品,科室信息,美容信息,疫苗信息,宠物分类开......
  • jsp“超格”在线教育平台的设计与实现269d0
    jsp“超格”在线教育平台的设计与实现269d0本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能学员,教员,教师招聘,学科,公务员,事业单位,课程订单,课程反馈,反馈回复,课程视频开题报告内容一、项目背......
  • 【Java】Jsoup 解析HTML报告
    一、需求背景有好几种报告文件,目前是人肉找报告信息填到Excel上生成统计信息跟用户交流了下需求和提供的几个文件,发现都是html文件其实所谓的报告的文件,就是一些本地可打开的静态资源,里面也有js、img等等二、方案选型前面老板一直说是文档解析,我寻思这不就是写爬虫吗....因......
  • 冒泡排序最外层循环最少所需执行次数计算
    给定一个长为\(n\)的排列\(a\),按下列代码执行排序,询问最终\(ans\)的值inlineintBF(){ memcpy(b,a,sizeof(b)); intans=0; for(inti=1;i<n;++i){ boolflag=1; for(inti=1;i<n;++i){ if(b[i]>b[i+1]){ flag=0; swap(b[i],b[i+1]); } } if(fl......
  • js替换字符串里的空格
    js替换字符串里的空格_百度搜索(baidu.com) ......
  • 2024中国天气网 实况天气API JSON格式接口
    中国天气网API接口GBK格式json数据:http://www.weather.com.cn/data/sk/101010100.htmlhttp://www.weather.com.cn/data/cityinfo/101010100.html{“weatherinfo”:{“city”:“鍖椾含”,“cityid”:“101010100”,“temp”:“18”,“WD”:“涓滃崡椋�”,“WS”:“1绾�”,......