JS阻止事件冒泡的几种方式

2023-11-20

JS阻止事件冒泡的几种方式

  • 事件委托
    将元素的绑定事件写起其父元素上,防止事件冒泡
    • example
<div id="parent">
    <div id="son"></div>
</div>

//将事件绑定在父元素上,不管子元素是不是动态生成的
//将第一种绑定事件写成第二种方式
$("#son").click(function(){
    //todo
});

$("#parent").on('click','#son', function(){
    //todo
});
  • off()解绑
    有时候,给动态生成的元素绑定事件时,会多次执行绑定的事件,这时,我们可以在元素绑定前,先off()所绑定的事件
    • example
$(selector).off('click').click(function(){
    //todo
});
  • event.stopPropagation();
    可以阻止事件冒泡,阻止父级元素的绑定事件
    • example
<div id="parent">
    <div id="son">i am son</div>
</div>

$('parent').click(function(){
    alert('parent');
});
$('son').click(function(event){
    alert('son');
    event.stopPropagation();
    /**
     * 加上这句话,当点击son元素时,只会弹出son的弹窗
     * 不加上这句话,点击son元素,会先弹出son,再弹出parent
     */
})
  • event.preventDefault()
    不会阻止事件,但会阻止事件的默认行为
    • example
<a href="//baidu.com"><button>click</button></a>

/**
 * 会先弹出b,在弹出a的弹窗,但是不会跳转页面
 * 去掉这句话,会先弹出b,在弹出a的弹窗,之后会跳转页面
 */
$('button').click(function(){
    alert('b');
    event.preventDefault();
});
$('a').click(function(){
    alert('a');
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS阻止事件冒泡的几种方式 的相关文章

  • 如何获取 AngularJS 指令中元素的 x 和 y 位置

    在指令的链接函数部分中 我们可以访问element目的 我想确定是否element对象位于当前视口内 如果可用 我目前有以下内容 link function scope element attrs controller var page a
  • 尝试旋转和变换 SVG 路径 - 我需要三角学计算吗?

    我正在尝试使用鼠标 SVG 路径进行操作 该路径代表电子电阻器的符号 该符号需要使用 引线 末端进行操作 如果您可以想象真实的电阻器 因此 我试图实现拖动第一个点周围 第二个点仍然存在 并且当在新坐标上拖动第一个点时 路径的所有点都按比例表
  • 使用 Javascript 防止刷新“跳转”

    我注意到 如果您在一个页面上并且向下滚动了很多 如果您刷新页面 大多数浏览器会将您跳回到您的位置 有什么办法可以防止这种情况发生吗 我研究了两个选项 但在 Webkit Firefox 上都不一致 window scrollTo 0 1 h
  • JavaScript 中工厂函数与构造函数的性能比较

    所以 当我们有一个简单的构造函数时 function Vec x y this x x this y y 还有一个工厂类似物 function VecFactory x y return x x y y 性能具有可比性 100000000
  • 如何使用 Fabric js 以编程方式自由绘制?

    使用 Fabric js 构建多人涂鸦 尝试使用 Fabric js 实现多人涂鸦 想法是当 U1 在画布上绘制时 我们将点推送到 RTDB 并在客户端上获取这些点 并以编程方式在两个客户端中绘制笔画 您可以将画布的数据保存在path cr
  • 解析 Angular2 中的 xml 以在视图中呈现

    我是否需要解析 xml 以从 xml 获取数据以在 html 中呈现 我目前正在使用获取本地 xml 文件http get请求并在控制台日志中显示 xml 文件中的所有信息 我认为它只是在读取它 问题是如何在angular2中将xml转换为
  • 重新加载页面时保持计时器(setInterval)运行

    加载网页后 我会通过控制台插入一些 Javscript 我想知道我是否可以使用 Javascript 或 jQuery 重新加载页面 不是从缓存 同时保留我正在运行的 setInterval 我熟悉 location reload 但这会终
  • IIFE 和 call 的区别

    之间有区别吗 function call this and function or var MODULE function this hello world call MODULE and var MODULE function m m h
  • 转义双引号 JavaScript

    我试图在 iPhone 上查看时运行某种图像格式 在其他情况下运行一些 Flash 视频 var uagent navigator userAgent toLowerCase if uagent search iphone gt 1 doc
  • 在 VueJs 中使用上下键自动完成搜索

    除了自动完成搜索之外 我还想添加功能以允许使用 VueJs 按下 向上键功能 我的模板如下所示 div h2 Todos h2 div class autocomplete div div
  • Javascript:如何简化具有多个 OR 条件的 if 语句?

    很抱歉 如果我在写这篇文章时犯了错误 我是新来的 不知道这是如何工作的 希望我能尽快学会 我也是 JavaScript 新手 所以问题是 我有这个代码 elements js文件 我无法让它工作 放这个有用吗 if codePrompt c
  • 使用 javascript onClick 播放 mp3 文件

    我正在播放 mp3 文件 只是 javascript onClick 下面是我的代码 Music File 1
  • Vue Chart.js - 数据变化时图表不更新

    我正在使用 Vue js 和 Chart js 绘制一些图表 每次我调用该函数时generateChart 图表不会自动更新 当我在 Vue Devtools 中检查数据时 它们是正确的 但图表没有反映数据 但是 当我调整窗口大小时 图表确
  • 如何将对象传递给 onclick 事件[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 循环内的事件处理程序 需要闭包吗 https stackoverflow com questions 341723 event handlers inside a javascr
  • 哪个 SVG/SMIL DOM 元素具有“beginElement”方法?

    最终 这是针对将在 Firefox 中运行的 Kiosk 风格的应用程序 使用 jQuery 1 6 4 因此答案可能是特定于 Firefox 的 我正在尝试制作动画 SVG 但我正在尝试通过动态插入 SMIL 来为其设置动画 我没有看到任
  • 防止IndexedDB请求错误取消事务

    我的意图 循环localStorage并将数据放入IndexedDB 如果发生某些已知错误 例如当键已存在时出现 ConstraintError 我想忽略这些特定错误 以便事务不会中止 当请求触发错误时 中止事务是默认行为 问题 我以为使用
  • 为什么 JavaScript 在不同浏览器中不一致?

    在花了无数个小时修复 JS 以使其跨浏览器兼容 主要是 IE 之后 我一直在思考以下问题 Why不是 JavaScript持续的跨浏览器 我的意思是 为什么 JS 不能像 Java 和 Flash 那样好呢 相反 我们必须求助于 jQuer
  • 使用node和multer将图像上传到heroku不起作用

    我正在尝试使用 Node 后端将图像文件上传到 Heroku 我可以使其工作 同样的过程在本地主机测试中工作得很好 但是在将我的项目部署到 Heroku 并测试它之后 过程和文件中出现错误不会上传 后端 let storage multer
  • 定位分离的 DOM 树内存泄漏

    我在诊断主要使用 Knockout 构建的非常大的单页 Web 应用程序中的分离 DOM 树内存泄漏时遇到问题 我已经调整了应用程序以附加一个假人FooBar对象特定的 HTML 按钮元素 当用户移动到应用程序的不同 页面 时 该元素应该被
  • JS 中的展开/休息运算符如何工作? [复制]

    这个问题在这里已经有答案了 我正在努力完全理解扩展 休息运算符在 JS 中的工作原理 我已经阅读了 MDN 文档 但我仍然不完全清楚 我在下面提供了一个示例 我在其中使用了它并且它按预期工作 const users name Samir a

随机推荐

  • 如何在 CentOS 中下载包含所有依赖项的 RPM 包

    翻译于ostechnix com 上 Senthil Kumar的 How To Download A RPM Package With All Dependencies In CentOS 我们可以使用curl或wget命令下载任何包 对
  • 火焰识别python_基于Python的火焰识别程序

    本期介绍一下笔者在试验数据处理时写的一个用于火焰识别的小程序 该小程序的功能是对拍摄到的火焰图像进行提取 增强 降噪和识别 并输出相应处理过的火焰图像以及火焰参数 如传播距离 面积等 该程序基于Python 3语言 用到了前面提到的图像和数
  • EditText设置监听

    在开发中有的需要对编辑框进行监听如果编辑框中没有值 登录按钮就是无法点击并且颜色为灰色 当编辑框中的值满足添加的时候 按钮可以点击同时颜色发生改变 由于自己是个菜鸟 代码中也有注释 也比较简单 有什么bug希望各位大神也能指点一二 acti
  • SSRS使用MySql作为数据源遇到的问题。

    因为工作需求 SSRS需要取到MySql数据源 还好有了ODBC 谷歌了很多 都是不完整的Solution 放上完整版的供大家评价参考 下面是StepByStep 问题1 使用ODBC数据源 填入正确的MySql连接字符串 却显示 ERRO
  • Python File seek() 方法和File read()方法

    read 方法用于从文件读取指定的字节数 如果未给定或为负则读取所有 语法 read 方法语法如下 fileObject read size 参数 size 从文件中读取的字节数 默认为 1 表示读取整个文件 返回值 返回从字符串中读取的字
  • 最小花费爬楼梯(C语言)

    本周第二题 数组的每个索引做为一个阶梯 第 i个阶梯对应着一个非负数的体力花费值 索引从0开始 每当你爬上一个阶梯你都要花费对应的体力花费值 然后你可以选择继续爬一个阶梯或者爬两个阶梯 您需要找到达到楼层顶部的最低花费 在开始时 你可以选择
  • 53. 翻转字符串

    思路 首先翻转字符串整体 然后对于每个单词进行翻转 两次翻转的函数使用同一个函数 翻转函数的思路 使用队列 将String转成char 然后反过来存储 下面就是使用的这种方法 用两个指针 进行前后字符的对换 StringBuilder类中有
  • 使用Retrofit过程中碰到的一些问题(持续更新。。。。)

    1 服务端成功返回数据 但解析返回的json格式失败 解决方法 1 在使用默认推荐的JSON解析配置 GsonConverterFactory create 时 我们自己创建的json对象基类中的各个变量名称要与服务器返回的JSON中的各名
  • 深度学习RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling `cublasSgemm( handle, opa,

    错误记录 在使用GPU跑程序时 前面加载数据是没问题的 后面relu 开始报错 错误为 RuntimeError CUDA error CUBLAS STATUS EXECUTION FAILED when calling cublasSg
  • HDU - 1002 A + B Problem II

    I have a very simple problem for you Given two integers A and B your job is to calculate the Sum of A B Input The first
  • 【golang】error parsing regexp: invalid or unsupported Perl syntax (正则表达式校验密码)

    要在 Go 中编写密码校验规则 确保密码不少于8位且包含数字和字母 你可以使用正则表达式和 Go 的 regexp 包来实现 以下是一个示例代码 错误示范 package main import fmt regexp func valida
  • 一、机器学习简介

    一 机器学习简介 1 1 机器学习简介 人工智能 Artificial Intelligence 简称AI 是对人的意识 思维过程进行模拟的一门新学科 如今 人工智能从虚无缥缈的科学幻想变成了现实 计算机科学家们在 机器学习 Machine
  • sc_project

    服务计算项目 总结报告 项目介绍 工作说明 实现效果 实验心得 项目介绍 本次项目是一个文章的博客 其功能有用户的登录 查找获取文章 删除文章 编辑评论 查看评论等等 除此之外用户登录时还会获得TOKEN 而用户添加评论时需要进行TOKEN
  • c++使用继承类实现异常处理

    sales h pragma once include
  • Linux Container(lxc)分析和配置使用

    前提 本文翻译 有道翻译 自linux container lxc 根据重点摘录学习 介绍 最好将容器化定义为 通过操作系统中的特性启用的进程隔离机制 容器是与系统其他部分隔离的一个或多个进程的集合 Containers VMs lxc通过
  • Node.js的基本模块,global、process详解

    基本模块 因为Node js是运行在服务区端的JavaScript环境 服务器程序和浏览器程序相比 最大的特点是没有浏览器的安全限制了 而且 服务器程序必须能接收网络请求 读写文件 处理二进制内容 所以 Node js内置的常用模块就是为了
  • 2023 华子(华为)硬件岗位面试2

    写在前面 本内容仅作参考 如有侵权或者其他问题 立马删除 也仅作为笔者个人经历或者回忆 不一定完全准确 一切都在改变 也祝愿大家面试顺利 顺利取得自己心仪的offer 编辑切换为居中 添加图片注释 不超过 140 字 可选 本次是业务主管面
  • 代码随想录算法训练营19期第42天

    01背包问题 二维 代码随想录 视频讲解 带你学透0 1背包问题 关于背包问题 你不清楚的地方 这里都讲了 动态规划经典问题 数据结构与算法 哔哩哔哩 bilibili 初步思路 动态规划 背包问题 总结 dp i j 表示从下标为 0 i
  • Spring Boot(十):Druid的监控统计和多数据源配置

    Druid的监控统计 Druid内置提供一个StatFilter 用于统计监控信息 下面我们就来做一些配置 启动Druid的监控 1 配置pom xml
  • JS阻止事件冒泡的几种方式

    JS阻止事件冒泡的几种方式 事件委托 将元素的绑定事件写起其父元素上 防止事件冒泡 example div div div div 将事件绑定在父元素上 不管子元素是不是动态生成的 将第一种绑定事件写成第二种方式 son click fun