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 相关文章推荐
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
javascript最常用与实用的创建类的代码
Aug 12 Javascript
SublimeText自带格式化代码功能之reindent
Dec 27 Javascript
举例讲解如何判断JavaScript中对象的类型
Apr 22 Javascript
几种二级联动案例(jQuery\Array\Ajax php)
Aug 13 Javascript
打造通用的匀速运动框架(实例讲解)
Oct 17 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
js限制input只能输入有效的数字(第一个不能是小数点)
Sep 28 Javascript
JavaScript数据结构之栈实例用法
Jan 18 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
Element DateTimePicker日期时间选择器的使用示例
Jul 27 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
全国FM电台频率大全 - 20 广西省
2020/03/11 无线电
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
jquery 新浪网易的评论块制作
2010/07/01 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
javascript改变position值实现菜单滚动至顶部后固定
2013/01/18 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
JS常用函数使用指南
2014/11/23 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
ES6的循环与可迭代对象示例详解
2021/01/31 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
简单分析Python中用fork()函数生成的子进程
2015/05/04 Python
使用Python脚本来获取Cisco设备信息的示例
2015/05/04 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
python面向对象入门教程之从代码复用开始(一)
2018/12/11 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
小学生自我鉴定
2013/10/12 职场文书
家长给小学生的评语
2014/01/30 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话全文
2014/10/25 职场文书
公司表扬稿范文
2015/05/05 职场文书
舞蹈社团活动总结
2015/05/07 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
React配置子路由的实现
2021/06/03 Javascript