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 相关文章推荐
JSON辅助格式化处理方法
Mar 26 Javascript
angularJS结合canvas画图例子
Feb 09 Javascript
在AngularJS框架中处理数据建模的方式解析
Mar 05 Javascript
AngularJS利用Controller完成URL跳转
Aug 09 Javascript
Vue.js实现无限加载与分页功能开发
Nov 03 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
Nov 30 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
Feb 14 Javascript
js图片延迟加载(Lazyload)三种实现方式
Mar 01 Javascript
require.js中的define函数详解
Jul 10 Javascript
JS简单实现父子窗口传值功能示例【未使用iframe框架】
Sep 20 Javascript
JS实现深度优先搜索求解两点间最短路径
Jan 17 Javascript
vue css 引入asstes中的图片无法显示的四种解决方法
Mar 16 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/01 无线电
杏林同学录(三)
2006/10/09 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
用JTrackBar实现的模拟苹果风格的滚动条
2007/08/06 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
Egret引擎开发指南之创建项目
2014/09/03 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
简单理解JavaScript中的封装与继承特性
2016/03/19 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
2016/05/23 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
Javascript 模拟mvc实现点餐程序案例详解
2020/12/24 Javascript
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python使用ftplib实现简易FTP客户端的方法
2015/06/03 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
一款html5 canvas实现的图片玻璃碎片特效
2014/09/11 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
金融学专科生自我鉴定
2014/02/21 职场文书
毕业论文评语大全
2014/04/29 职场文书
春游踏青活动方案
2014/08/14 职场文书
单身证明格式样本
2015/06/15 职场文书
DSP接收机前端设想
2022/04/05 无线电