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背投广告代码的完善
Apr 08 Javascript
jQuery 选择器、DOM操作、事件、动画
Nov 25 Javascript
jquery中animate的stop()方法作用实例分析
Jan 30 Javascript
无刷新上传文件并返回自定义值
Jun 11 Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 Javascript
详解Node.js模块间共享数据库连接的方法
May 24 Javascript
JQuery控制DIV的选取实现方法
Sep 18 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
Dec 22 Javascript
Koa 中的错误处理解析
Apr 09 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 Javascript
微信小程序自定义modal弹窗组件的方法详解
Dec 20 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
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
jquery select下拉框操作的一些说明
2010/04/02 Javascript
js iframe跨域访问(同主域/非同主域)分别深入介绍
2013/01/24 Javascript
js添加table的行和列 具体实现方法
2013/07/22 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
微信小程序 页面跳转如何实现传值
2017/04/05 Javascript
微信小程序删除处理详解
2017/08/16 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
用vue构建多页面应用的示例代码
2017/09/20 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
python中cPickle用法例子分享
2014/01/03 Python
介绍Python中的一些高级编程技巧
2015/04/02 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python使用functools实现注解同步方法
2018/02/06 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
Python面向对象程序设计类变量与成员变量、类方法与成员方法用法分析
2019/04/12 Python
python3+PyQt5 创建多线程网络应用-TCP客户端和TCP服务器实例
2019/06/17 Python
python中四舍五入的正确打开方式
2021/01/18 Python
Ibood荷兰:互联网每日最佳在线优惠
2019/02/28 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
上班上网检讨书
2014/01/29 职场文书
幼儿园秋游感想
2014/03/12 职场文书
员工生日活动方案
2014/08/24 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
2014年学校党建工作汇报材料
2014/11/02 职场文书
高中数学教学反思范文
2016/02/18 职场文书
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS
MySql分区类型及创建分区的方法
2022/04/13 MySQL