当前位置: 首页 > news >正文

随笔一个dom节点绑定事件

  以下利用jquery说明:

    js中,给一个dom节点绑定事件再平常不过了。这里说下,如果dom经常发生变化的话,给这个dom绑定事件的情况。

比如代码如下:

li的节点,绑定了事件:点击会打出来里头的html内容。

button点击事件:会生成一个li节点。

 1 <html>
 2 <head>
 3     <meta charset="UTF-8">
 4 </head>
 5 <body>
 6 <ul class="ul">
 7     <li class="li">abc</li>
 8     <li class="li">abc</li>
 9     <li class="li">abc</li>
10 </ul>
11 
12 <hr/>
13 <button id="btn">add</button>
14 </body>
15 <script type="text/javascript" src="jquery.js"></script>
16 <script type="text/javascript">
17     $(function(){
18 
19         $('.li').click(function(){
20             console.log(this.innerHTML);
21         });
22 
23         $('#btn').on('click', function(){
24             $('.ul').append('<li class="li">XXX</li>');
25         });
26 
27     });
28 
29 </script>
30 </html>

 

如果这么写的话,点击以后生成的li节点,点击是不会打出log的~

因为代码执行来看,未点击add时,我们给每一个li绑定了click事件,这仅限于当前dom树下的li。$('.li')仅是获取当前dom下的所有class为li的节点。

当点击button后,再生成的节点,是绑定不上的。

咋办咧?此时,我们会利用事件的冒泡或者捕获的机制,对li的父节点ul打主意~如果给ul绑定一个click事件,那么即便是点击新生成的它的子节点,不也有了事件么?哈哈~就是这样

代码如下:

$('.ul').on('click', '.li', function(){
     console.log(this.innerHTML);
});

我们给.ul绑定了事件,在其中选择.li选择器,这样就解决了~

 

转载于:https://www.cnblogs.com/firstForEver/p/5267264.html

相关文章:

  • 程序员的美:极致与疯狂
  • 大脑暗能量
  • 2013551813 张燕燕 第二周作业
  • 一个7200转/分钟,20G的给力风扇
  • 页面刷新 整个页面刷新和局部刷新
  • 如何编译MFDeploy
  • 系统设计
  • QT(3)对象和继承-Addressbook例子1
  • 很想写些CMMI的东西
  • 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
  • #include到底该写在哪
  • ANDROID模拟器访问本地WEB应用10.0.2.2
  • 两道考研试题
  • Windows_CMD_临时环境变量
  • linux0.11内核源码剖析:第一篇 内存管理、memory.c
  • JavaScript 如何正确处理 Unicode 编码问题!
  • canvas绘制圆角头像
  • ES10 特性的完整指南
  • export和import的用法总结
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • Kibana配置logstash,报表一体化
  • Logstash 参考指南(目录)
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • PAT A1017 优先队列
  • PAT A1050
  • PHP CLI应用的调试原理
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • springMvc学习笔记(2)
  • tweak 支持第三方库
  • uni-app项目数字滚动
  • 机器学习中为什么要做归一化normalization
  • 如何设计一个比特币钱包服务
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 我与Jetbrains的这些年
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一天一个设计模式之JS实现——适配器模式
  • 云大使推广中的常见热门问题
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (C++17) optional的使用
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (力扣记录)1448. 统计二叉树中好节点的数目
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)jQuery 基础
  • (转)Windows2003安全设置/维护
  • (转)关于pipe()的详细解析
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)