出现情景:当内层事件需要外层事件触发后产生的一些值得时候

情景复现:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>测试</title>
</head>
<body><button id="btn1">外层事件</button><button id="btn2">内层事件</button>
</body>
<script src="https://cdn.staticfile.org/jquery/2.2.4/jquery.min.js"></script>
<script>var count1=0;//记录外层事件执行次数
var count2=0;//记录内层事件执行总次
$('#btn1').on('click',function () {count1++;var testStr='外层中的字符串';console.log('第'+count1+'次外层事件')$('#btn2').on('click',function () {count2++;console.log(testStr);console.log('第'+count2+'次内层事件');})})
</script>
</html>

页面效果

控制台内容:

可以看到每执行一次外层事件:

再次执行内层事件时,次数会一直累加

解决办法:

在内层事件绑定之前 利用$(selector).unbind(event) 方法先解绑一次:

更改的js代码如下:

<script>var count1=0;//记录外层事件执行次数
var count2=0;//记录内层事件执行总次
$('#btn1').on('click',function () {count1++;var testStr='外层中的字符串';console.log('第'+count1+'次外层事件')$('#btn2').unbind('click');//新增 解除绑定的click事件$('#btn2').on('click',function () {count2++;console.log(testStr);console.log('第'+count2+'次内层事件');})})
</script>

再次进行测试:

解决内层事件多次被触发的问题

转载于:https://www.cnblogs.com/roseAT/p/10355754.html

解决jquey中当事件嵌套时,内层事件会执行多次的问题相关推荐

  1. 解决Photoshop中直线转曲线时一条直线边无法转曲线的问题

    目录 解决Photoshop中直线转曲线时一条直线边无法转曲线的问题 问题概述 问题原因 解决方法 其他情况 解决Photoshop中直线转曲线时一条直线边无法转曲线的问题 Mac OS 10.15 ...

  2. 把指定用户的命令写在/home/etc/rc.local中,系统开机时就会自动执行指定用户的命令。

    把指定用户的命令写在/home/etc/rc.local中,系统开机时就会自动执行指定用户的命令.

  3. 解决Python中PyCharm导入模块时,模块名下出现红色波浪线的问题

    在博主第一次在PyCharm中导入模块时,模块名下出现红色波浪线,不影响程序执行,但强迫症忍不了 以下是解决办法 Let's do it ... 进入设置,找到Console下的Python Cons ...

  4. 解决jqweui中slider 按住移动时鼠标超出松开还会继续移动问题。

    使用时按住移动,正常是没问题的,但是当鼠标超出slider范围时松开鼠标左键,移动还依然会跟随移动. //判断鼠标是否超出 骰子位置,如超出则终止移动事件 if(!document.getElemen ...

  5. 时分秒导入oracle数据库,解决数据库中插入时间丢失时分秒

    Java.util.Date转换为java.sql.Date带时分秒 java.util.Date需要转换为java.sql.Date,常规的方式转换过来只可以得到年月日,如若要取得时分秒,可以用Da ...

  6. 解决eclipse中打开xml文件时不显示namespace标签的问题

    网上找了很多方法,都不能按佟刚的视频教程那样在xml底部看到namespace标签: 这是因为安装的springsource-tool-suite插件版本跟eclipse版本不兼容的原因,需要版本对应 ...

  7. html 卸载事件不执行,javascript – 如何在contenteditable中删除HTML元素时触发事件

    您可以使用 MutationObserver来实现此目的.要跟踪从您的contenteditable元素中删除的任何类型的节点,请遵循以下示例 span var observer = new Muta ...

  8. iOS解决表格中TextField,TextView编辑时,输入框被键盘遮挡的问题

    方法1:在原来的 UIViewController 内部再添加一层 UITableViewController 代码如下 : // // ViewController.m // 键盘遮挡问题 // / ...

  9. 2021-07-05解决Pycharm中使用scrapy框架时出现 from .items import Item 报错

    可能是你的根目录有问题 只需要改根目录,具体如下

最新文章

  1. 《iOS取证实战:调查、分析与移动安全》一2.4 安全
  2. MySQL 开启远程登录权限
  3. 谁能够在萧条中生存?历史总是惊人相似的(转)
  4. 1-2docker-基本的使用
  5. matlab chan算法定位,MATLAB实现基于Chan氏算法的三维TDOA定位
  6. KVC(Key-Value-Coding)和KVO(Key-Value-Observer)
  7. 创建ubuntu根文件系统
  8. 23、Camunda DMN决策初探
  9. 安卓ROOT全教程(测试机 红米Note7Pro)
  10. win10系统IIS服务器配置详细教程,win10系统配置iis的操作方法
  11. 怎样在计算机上登录qq音乐,如何使用手机控制电脑qq音乐播放
  12. WINDOWS系统文件夹、实用自带工具、DOS、进程等,解析集合(积累)较实用...
  13. 微信小程序获取微信绑定授权手机号
  14. 2018 CTCS第五届“智能出行”中国企业差旅合规高峰论坛即将开幕
  15. cpu和gpu各自的作用
  16. 马云用大数据力证女性让世界更美好
  17. kaggle比赛记录——ieee_fraud_detection问题
  18. BFD快速检测工作原理
  19. 位图BitMap图像的读取与存储
  20. 用python来打印数字金字塔

热门文章

  1. 如何验证 Active Directory 使用表单身份验证和 Visual C#.NET
  2. 中科院院士张钹:发展第三代AI技术,中美处在同一起跑线上
  3. 数据科学家技能地铁图
  4. nitrous.io mysql_云IDE:Nitrous.io的介绍以及活用手段
  5. 学计算机需要用手机吗,智能手机能代替电脑吗?
  6. 002_JDK的Comparable接口
  7. mysql json 中日期_mysql 转换json 时间问题
  8. 电机编码器调零步骤_各种编码器的调零方法
  9. mysql raiserror_RAISERROR在SQL Server数据库中的用法
  10. linux运行欧陆风云,MY-SAMA5 Linux-3.18 RTL8188EU 开发指导