JS 阻止事件冒泡

2023-11-17

冒泡事件就是:你给父元素绑定了一个事件,你点击子元素也会触发这个事件,因为事件是向上冒泡的,阻止冒泡的方法最常见的方法有两种:

1.if(event.target == this)

使用这个判断就可以确定你点击的元素是否是事件触发的来源,这样就会阻止冒泡事件。

$('#container button').click(function(event){
    if(event.target==this){
      ......
    }
  })
  

  

2.event.stopPropagation()

使用这个方法的作用是阻止事件冒泡,阻止你对长辈元素的影响,但不能阻止后代元素对你的影响。

$('#container button').click(function(event){
    ......
    event.stopPropagation();
})

 

 

理解了这个就很容易解决我今天碰到的问题了

一个表格第一列是checkbox,写了了个JS使得点击表格每一行都会选中该checkbox

                $("#container tbody>tr").click(function () {
                    var cb = $(this).find("td:eq(0)>input:checkbox")[0];
                    if (!cb.checked) {
                        cb.checked = true;
                    } else {
                        cb.checked = false;
                    }
                });

结果才发现不管怎么点击checkbox,就是选不中,原因就是你点击checkbox,已经给你选中了,但事件冒泡到tr触发了tr的click事件,又给你取消选中了。

解决办法就是组织checkbox的事件冒泡:

                $("#container tbody input:checkbox").click(function (event) {
                    event.stopPropagation();
                });

 当然也可以用第一种方法,event.target == this,但我这里情况特殊,不适用,因为你点击表格时,他会tr td傻傻分不清楚的。 

转载于:https://www.cnblogs.com/young2012/p/3275636.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JS 阻止事件冒泡 的相关文章

  • 如何快速确定程序的入口

    前言 在阅读代码时 知道程序的入口十分重要 这有助于快速理清程序的逻辑框架 我们找到程序入口后 顺着代码的执行顺序来阅读代码 可以比较容易的理解代码 这里说的代码是编译后成为可执行程序的代码 在linux中就是elf格式 被编译成可执行程序
  • 【学习笔记】模糊控制算法

    本文目录 0 前言 1 概述 2 模糊集合 2 1 集合和论域 2 2 模糊集合的概念 2 3 模糊集合的表示方式 2 4 模糊集合的运算 3 模糊关系与模糊关系合成 3 1 笛卡尔积 3 2 关系与模糊关系 3 3 模糊关系的运算 3 4
  • 自动生成代码的配置generator.properties

    u4EE3 u7801 u751F u6210 u5668 uFF0C u914D u7F6E u4FE1 u606F u5305 u540D package com zscat cms u4F5C u8005 author zscat E
  • python使用scipy.optimize的fsolve求解线性(非线性)方程

    文章目录 求解线性方程 求解非线性方程 求解线性方程 对于固定的线性方程 a 2b 0 4a 5b 0 求 a 与 b 使用如下方法 import scipy optimize as opt import numpy as np def f
  • 【JDK版本常见报错及其解决,Java基础知识点百度云

    J2SE 8 52 J2SE 7 jdk1 7 51 J2SE 6 0 jdk1 6 50 J2SE 5 0 jdk1 5 49 JDK 1 4 48 JDK 1 3 47 JDK 1 2 46 JDK 1 1 45 那怎么办 好办 把项目
  • 【链表】环型链表找环的起点

    力扣 142 环型链表 II 题目 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 1 先确定链表存在环 使用快慢指针法 分别定义 fast 和 slow 指针 从头结点出发 fast 指针每次
  • FFmpeg中的常见结构体

    代码基于FFmpeg5 0 1 目录 FFFormatContext AVFormatContext AVIOContext FFIOContext URLContext URLProtocol AVInputFormat FFStream
  • PAT甲级刷题:模拟(不断更新)

    目录 1001 A B Format 1005 Spell It Right 1035 Password 1061 Dating 18 20 1073 Scientific Notation 16 20 1077 Kuchiguse 17
  • Java 华为真题-猴子爬山

    需求 一天一只顽猴想去从山脚爬到山顶 途中经过一个有个N个台阶的阶梯 但是这猴子有一个习惯 每一次只能跳1步或跳3步 试问猴子通过这个阶梯有多少种不同的跳跃方式 输入描述 输入只有一个整数N 0
  • k8s中各组件和kube apiserver通信时的认证和鉴权

    背景 和master节点kube api server通信的组件有很多 包括 kubelet calico scheduler kubectl 某些pod可能会和kube api server通信 这些组件和api server通信时用的是
  • Springboot使用EasyExcel读写excel(详细)

    文章目录 使用EasyExcel读取Excel 一 关于EasyExcel 二 读取excel 实体类 本地读取 controller上传 创建监听器 三 导出excel 实体类 本地导出 Controller下载 使用EasyExcel读
  • 模糊pid控制的温度系统matlab源代码_模糊PID控制系统(一)模糊入门

    1 matlab模糊工具箱 1 1 matlab命令 fuzzy 打开fuzzy设计工具箱 1 2 添加输入输出 隶属度函数 数值范围 1 3 确定模糊规则表 添加模糊规则 也可在matlab 编辑器里编辑 fis文件 1 4 反模糊化 1
  • HTTP协议之multipart/form-data请求分析

    无意中发现了一个巨牛的人工智能教程 忍不住分享一下给大家 教程不仅是零基础 通俗易懂 而且非常风趣幽默 像看小说一样 觉得太牛了 所以分享给大家 点这里可以跳转到教程 首先来了解什么是multipart form data请求 根据http
  • hook-setInterval定时器

    目标网站 aHR0cDovL3NwaWRlci53YW5nbHVvemhlLmNvbS9jaGFsbGVuZ2UvNQ 背景 本题为hook初体验 目标是用hook的方式过掉定时器 成功在控制台中打印出我们想要的内容 表现形式 1 一进入页
  • 【Java愚公】Windows安装wsl2

    Windows安装wsl2 查看window有没有安装wsl 在window下安装wsl 查看window有没有安装wsl 在cmd命令面板输入 wsl 没有安装wsl输入会报错 在window下安装wsl 通过在管理员PowerShell
  • js实现图片上下滚动background-position

  • 关于js报错 Cannot read property innerHTML of null和关于Cannot set property ‘innerHTML’ of null 错误原因

    解决关于js报错 Cannot read property innerHTML of null 1 相信很多同学在开发过程中都会遇到 Cannot read property innerHTML of null 这个报错的字面含义是 不能读
  • 前端文件下载的八种方法(解决pdf、图片在浏览器自动打开问题)

    系列文章目录 现在流行的chrom 和火狐浏览器 都会将图片和文档自动打开 图片自动打开的问题已经解决 请看第三条 提示 下面代码中会用到a标签中 target 会添加一个 view window 的属性 如果想要详细了解a标签的属性 可以
  • rabbitMQ初识

    消息队列 RabbitMQ 认识MQ 同步和异步通讯 微服务间通讯有同步和异步两种方式 同步通讯 就像打电话 需要实时响应 异步通讯 就像发邮件 不需要马上回复 同步通讯 同步调用的优点 时效性较强 可以立即得到结果 同步调用的问题 耦合度
  • C++之多重继承

    大多数应用程序使用单个基类的公用继承 但是在某些情况下 单继承是不够的 必须使用多继承 C 允许为一个派生类指定多个基类 这样的继承结构被称做多重继承 举个例子 交通工具类可以派生出汽车和船连个子类 但拥有汽车和船共同特性水陆两用汽车就必须

随机推荐

  • 使用Android studio开发第一个小程序

    1 点击新建安卓项目 填入项目名称 公司域 项目的修饰 项目路径 若不存在 会新建一个路径 下面两个不要选 点击下一步 2 接下来就是项目配置了 在这里我们只勾选第一个 适配的手机系统最小sdk版本 目前经常用的是API 17 当然你也可以
  • 深入理解浏览器缓存机制 ( http )

    一 介绍 http缓存 浏览器根据当前http请求报文策略 将网路资源存储到本地内存 memory cache 硬盘 disk cache 中 缓存流程 浏览器 浏览器缓存 服务端 发起请求 根据缓存
  • dns服务器经赏要修复,十要诀帮你修复DNS域名解析服务故障

    十个要诀帮你修复DNS故障 1 DNS是网络基础协议之一 想必大家都应该有所了解 对于所有基于Windows系统的网络来说 DNS都属于最重要的服务之一 在没有DNS支持的情况下 活动目录就不能正常工作 并且它使用到的功能也比任何其它类型的
  • 【C++】赋值运算符重载的返回值分析

    转载 https blog csdn net Always article details 50532323 其实对于重载赋值运算符 返回值是引用或者不是都行 代码都可以运行 之所以用引用是为了提高代码效率 为什么引用就会提高代码效率呢 对
  • 使用docker-maven-plugin插件构建镜像并推送至私服Harbor

    前言 如下所示 建议使用 Dockerfile Maven 插件 但该插件也停止维护更新了 因此先暂时使用docker maven plugin插件 一 开启Docker服务器的远程访问 1 1 开启2375远程访问 默认的dokcer是不
  • b+树和b树的区别

    B 树和B 树是两种在数据库索引实现中经常使用的平衡树 在实际应用中被广泛采用 B 树和B 树都是基于平衡树的数据结构 用来实现数据的索引和查找 它们都支持对数据的插入 删除和查找等操作 并且可以在较短的时间内完成数据的查找和遍历等操作 但
  • 13张图,带大家深入理解Synchronized

    目录 前言 内容大纲 Synchronized使用方式 普通函数 静态函数 代码块 Synchronized原理 Synchronized优化 锁粗化 锁消除 锁升级 偏向锁 轻量级锁 重量级锁 前言 Java并发编程系列第二篇Synchr
  • “用户登录”测试用例总结

    前言 作为测试工程师 你的目标是要保证系统在各种应用场景下的功能是符合设计要求的 所以你需要考虑的测试用例就需要更多 更全面 鉴于面试中经常会问 如何测试用户登录 我们利用等价类划分 边界值分析等设计一些测试用例 显式功能性需求测试用例 1
  • 牛客网C++项目课件资料

    1 Linux系统编程入门 2 Linux多进程 3 Linux多线程 4 Linux网络编程
  • Unity3D 地形(Terrain)设置

    这篇说的是Unity地形 关于Unity3D是什么 我就不多做解释了 由于工作原因 该系列原创教程不定期更新 每月必然有更新 谢谢各位 Unity地形 新建地形 如图在菜单中新建一个地形 就会在 中看到Terrain对象 如果要修改地形参数
  • 一文读懂数据安全分级分类

    目录 为什么要分级分类 通用数据分级分类框架 数据分类 数据分类的常用方法 数据分类流程 数据分级 数据分级的常用方法 数据定级流程 行业数据安全分级分类指南 金融行业 电信行业 政务数据 健康医疗 企业实践 附录 数据分级分类大合集 为什
  • MySQL——数据类型DECIMAL用法

    DECIMAL数据类型用于要求非常高的精确度的计算中 像坐标 钱这样的数据 对于精度要求高的 可以采用decimal来进行存储 用法 DECIMAL P D P是表示有效数字数的精度 P范围为1 65 D是表示小数点后的位数 D的范围是0
  • 在线画图工具

    转自 常用9款在线作图工具 总有一款适合你 shenhangyu1989的博客 CSDN博客 在线画图 最近想在团队里使用在线作图工具 使用的在线工具的原因是 一来免得大家再安装本地软件 二来在线工具在多人共享 团队协作方面的优势更大 再者
  • Flume 学习

    开始启动flume的学习 todo
  • 提示 需要 Oracle 客户端软件 8.1.7 或更高版本 解决方案

    一 问题 1 使用第三方接口连接Oracle数据库 程序内调用接口提示 需要 Oracle 客户端软件 8 1 7 或更高版本 网上看了很多答案 依然不起效果 在公司前辈指点下 终得以找到解决办法 2 数据库 Oracle 11g 二 解决
  • HardFault_Handler异常

    Cortex M3 双堆栈指针 MSP PSP Cortex M3内核中有两个堆栈指针 MSP PSP 但任何时刻只能使用到其中一个 复位后处于线程模式特权级 默认使用MSP 通过SP访问到的是正在使用的那个指针 可以通过MSR MRS指令
  • mysqldump的备份和恢复

    1 mysqldump的简介 mysqldump工具是mysql数据库自带的 最基础的一款备份工具 它的备份过程首先是从buffer中找到需要备份的数据进行备份 如果buffer中没有 就去磁盘中数据文件查找并缓存到buffer里再进行备份
  • Leetcode 题解系列--Leetcode1 两数之和

    题目描述 两数之和 给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 数组中同一个元素不能使用两遍 解题思路 解法一 直观的
  • 用虚拟机搭建出来的服务器和阿里云腾讯云买的服务器的区别在哪里?

    讲真 区别蛮大的 说天壤之别 也不为过 我们来列举以下几个方面的差别 1 网络 云平台提供的网络一般都是多线BGP 也就是说无论你现在是什么网络环境 都可以保障流畅的访问 而本地出于成本的考虑 最多两根光纤 外部访问的流畅性得不到保障 2
  • JS 阻止事件冒泡

    冒泡事件就是 你给父元素绑定了一个事件 你点击子元素也会触发这个事件 因为事件是向上冒泡的 阻止冒泡的方法最常见的方法有两种 1 if event target this 使用这个判断就可以确定你点击的元素是否是事件触发的来源 这样就会阻止