JS如何实现动态添加的元素绑定事件


Posted in Javascript onNovember 12, 2019

这篇文章主要介绍了JS如何实现动态添加的元素绑定事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

最近做的项目要实现一个动态添加动态删除的功能,思考了一下,该怎么给动态添加的元素绑定事件。最后觉得有两种方式比较可靠,第一种是在动态添加的html代码里添加oclick事件,然后给传个唯一的参数来判断点击了哪个,然后做相应的操作,第二种是通过事件委托的原理来处理,事件委托将一个事件侦听器实际绑定到整个容器,然后在单击它时能够访问每个列表项,这种更高效一些

具体的代码实现如下:

第一:onclick

<body>
  <button onclick="AddJob()">添加工作经历</button>
  <button onclick="GetJobs()">获取全部工作</button>

  <div id="joblist">
    <div id="job1" class="job">
      <input name="CompanyName" type="text" value="公司1" />
      <button onclick="DelJob(1)">删除</button>
    </div>
  </div>
  <script type="text/javascript">
    //添加工作经历
    function AddJob() {
      var timestamp = parseInt((new Date()).valueOf()); //唯一的标识
      console.log(parseInt((new Date()).valueOf()));
      document.getElementById("joblist").innerHTML +=
        `<div id="job` + timestamp + `" class="job">
           <input name="CompanyName" type="text" value="公司` + timestamp + `" />
           <button onclick="DelJob(` + timestamp + `)">删除</button>
         </div>`;
    }
    //删除工作经历
    function DelJob(timestamp) {
      document.getElementById("job" + timestamp).remove();
    }
    //获取全部工作经历
    function GetJobs() {
      var jobs = document.getElementsByClassName("job");
      var arr = [];
      for (var i = 0; i < jobs.length; i++) {
        var job = jobs[i];
        var companyName = job.children[0].value;
        arr.push(companyName);
      }
      console.log(arr);
      alert(arr);
    }
  </script>
</body>

第二种:

document.getElementById('joblist').addEventListener('click', function (ev) {
    var target = ev.target || ev.srcElement;
    if (target.nodeName.toLowerCase() == 'button') {
      var e = document.getElementById(target.parentNode.id);
      document.getElementById("joblist").removeChild(e);
    }
  });

效果

JS如何实现动态添加的元素绑定事件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript div 弹出可拖动窗口
Feb 26 Javascript
Javascript 日期处理之时区问题
Oct 08 Javascript
XENON基于JSON变种
Jul 27 Javascript
浅析$.getJSON异步请求和同步请求
Jun 06 Javascript
微信小程序 LOL 英雄介绍开发实例
Sep 30 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
Three.js如何实现雾化效果示例代码
Sep 27 Javascript
Vue DevTools调试工具的使用
Dec 05 Javascript
react native 文字轮播的实现示例
Jul 27 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
Sep 26 Javascript
30分钟快速实现小程序语音识别功能
Nov 27 Javascript
详解vue中axios请求的封装
Apr 08 Javascript
解决Vue打包上线之后部分CSS不生效的问题
Nov 12 #Javascript
微信小程序点击顶部导航栏切换样式代码实例
Nov 12 #Javascript
Vue自定义指令结合阿里云OSS优化图片的实现方法
Nov 12 #Javascript
浅谈如何优雅处理JavaScript异步错误
Nov 12 #Javascript
vue页面切换项目实现转场动画的方法
Nov 12 #Javascript
解决vue-cli 打包后自定义动画未执行的问题
Nov 12 #Javascript
vue transition 在子组件中失效的解决
Nov 12 #Javascript
You might like
咖啡店都有些什么常规豆子呢?有什么风味在里面
2021/03/04 咖啡文化
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
学习ExtJS Panel常用方法
2009/10/07 Javascript
简单的代码实现jquery定时器
2013/11/17 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
jquery操作复选框checkbox的方法汇总
2015/02/05 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
React 子组件向父组件传值的方法
2017/07/24 Javascript
详解React之key的使用和实践
2018/09/29 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
Openlayers3实现车辆轨迹回放功能
2020/09/29 Javascript
尝试使用Python多线程抓取代理服务器IP地址的示例
2015/11/09 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
python特性语法之遍历、公共方法、引用
2018/08/08 Python
Python数学形态学实例分析
2019/09/06 Python
浅谈Python中threading join和setDaemon用法及区别说明
2020/05/02 Python
Python如何实现FTP功能
2020/05/28 Python
python 利用toapi库自动生成api
2020/10/19 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
wordpress添加Html5的表单验证required方法小结
2020/08/18 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
2014年度培训工作总结
2014/11/27 职场文书
婚礼父母答谢词
2015/01/04 职场文书
小学教师自我评价
2015/03/04 职场文书
消防安全月活动总结
2015/05/08 职场文书
教师外出学习心得体会
2016/01/18 职场文书
2016年企业先进员工事迹材料
2016/02/25 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python