JS用事件委托给元素增加事件

这次给大家带来JS用事件委托给元素增加事件,JS用事件委托给元素增加事件的注意事项有哪些,下面就是实战案例,一起来看一下。

我们在日常开发中有时会通过js创建一些元素,但是如果使用原始的for循环给创建的节点添加事件的方法往往行不通:

  js动态添加事件 
  • 123
  • 123
  • 123
document.getElementById('btn').addEventListener('click',function(){ var htmlFragment='
  • 我是新增的li
  • '; var addLi=document.createElement('li'); addLi.innerHTML=htmlFragment; outUl.appendChild(addLi); },false); var outUl=document.getElementById('out-ul') var outLi=outUl.getElementsByClassName('out-li'); for(var i=0;i<outLi.length;i++){ outLi[i].onclick=function(){ alert(1); } }

    登录后复制

    比如这样,通过for循环给li添加的事件无法绑定到新增的li上边,详细的原因这里不做解释。那么这个如何解决呢,其实办法也简单,就是通过事件委托的方式去解决,直接上代码,上面的代码简单改造:

      js动态添加事件 
    • 123
    • 123
    • 123
    var outUl=document.getElementById('out-ul') var outLi=outUl.getElementsByClassName('out-li'); document.getElementById('btn').addEventListener('click',function(){ var htmlFragment='
  • 我是新增的li
  • '; var addLi=document.createElement('li'); addLi.innerHTML=htmlFragment; outUl.appendChild(addLi); },false); outUl.addEventListener('click',function(e){ e=e || window.event;//兼容ie alert(e.target.innerHTML); }, false);

    登录后复制

    这样一来,即便是新增的li点击事件也可以被触发了,不过在这里jquery的详细方式就不做介绍了,原生js跟jquery的解决原理其实是一样的。相信大家把原生的理解了,jquery的方式也可以很好的理解

    相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

    推荐阅读:

    jquery里filter()方法使用详解

    jquery中filter()方法使用案例说明

    以上就是JS用事件委托给元素增加事件的详细内容,更多请关注【创想鸟】其它相关文章!

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

    发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2763230.html

    (0)
    上一篇 2025年3月8日 10:08:23
    下一篇 2025年3月4日 20:21:31

    AD推荐 黄金广告位招租... 更多推荐

    相关推荐

    • JS遍历不规则多维数组方法总结

      这次给大家带来JS遍历不规则多维数组方法总结,JS遍历不规则多维数组的注意事项有哪些,下面就是实战案例,一起来看一下。 直接进入正文: 我们有时候处理数据,可能会遇到一些不规则(无法预料的数据结构),那么拿到这种数据我们如何进行遍历操作呢?…

      2025年3月8日
      200
    • JS+PHP往类动态添加方法

      这次给大家带来JS+PHP往类动态添加方法,JS+PHP往类动态添加方法的注意事项有哪些,下面就是实战案例,一起来看一下。 1.JAVASCRIPT: a. 代码: var a = function(){}var my_a = new a(…

      编程技术 2025年3月8日
      200
    • 用p5.js制作烟花特效的示例代码_javascript技巧

      本篇文章主要介绍了用p5.js制作烟花特效的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 前言 之前看过一篇文章,使用processing制作烟花特效。效果如下 fireworks 网上调查了一圈了,…

      2025年3月8日
      200
    • ng-repeat渲染完成如何用AngularJS监听

      这次给大家带来ng-repeat渲染完成如何用AngularJS监听,AngularJS监听ng-repeat渲染完成的注意事项有哪些,下面就是实战案例,一起来看一下。 某个项目,我的网页中有一个列表 元素,样式如下: 实际上它是通过Ang…

      2025年3月8日
      200
    • vue处理storejs获取的数据

      这次给大家带来vue处理storejs获取的数据,vue处理storejs获取数据的注意事项有哪些,下面就是实战案例,一起来看一下。 具体代码如下所示: export default { data(){ return { shopList:…

      编程技术 2025年3月8日
      200
    • 给nodejs里密码加密有哪几种方式

      这次给大家带来给nodejs里密码加密有哪几种方式,给nodejs里密码加密的注意事项有哪些,下面就是实战案例,一起来看一下。 一、关于node加密模块crypto的介绍 其实就是使用MD5加密的,不太安全,在实际开发中根据自己的方案进行加…

      编程技术 2025年3月8日
      200
    • nodejs连接mysql数据库步骤详解

      这次给大家带来nodejs连接mysql数据库步骤详解,nodejs连接mysql数据库的mysql数据库有哪些,下面就是实战案例,一起来看一下。 一、几个常用的全局变量 1、filename获取当前文件的路径2、dirname获取当前文件…

      编程技术 2025年3月8日
      200
    • 在vue项目中使用sass的配置方法_vue.js

      这次给大家带来vue使用sass配置步骤详解,vue使用sass配置的注意事项有哪些,下面就是实战案例,一起来看一下。   1、创建一个基于 webpack 模板的新项目 $ vue init webpack myvue 登录后复制 2、在…

      2025年3月8日
      200
    • 动态操作js/css文件有哪些方法

      这次给大家带来动态操作js/css文件有哪些方法,动态操作js/css文件的注意事项有哪些,下面就是实战案例,一起来看一下。 //动态加载一个js/css文件function loadjscssfile(filename, filetype…

      编程技术 2025年3月8日
      200
    • Javascript基本使用方式

      这些是我所整理的javascript中最基本的使用规则和方法,通过这些知识的学习,可以对javascript有个最基本的认识和了解。 一、如何使用JS代码:       使用标签在HTML网页中,JavaScript代码。注意,标签要成对出…

      编程技术 2025年3月8日
      200

    发表回复

    登录后才能评论