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 相关文章推荐
一段批量给页面上的控件赋值js
Jun 19 Javascript
javascript 伪数组实现方法
Oct 11 Javascript
用Juery网页选项卡实现代码
Jun 13 Javascript
js异常捕获方法介绍
Apr 10 Javascript
node.js开机自启动脚本文件
Dec 24 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
JavaScript高阶函数_动力节点Java学院整理
Jun 28 Javascript
AngularJS select加载数据选中默认值的方法
Feb 28 Javascript
axios发送post请求,提交图片类型表单数据方法
Mar 16 Javascript
vue根据值给予不同class的实例
Sep 29 Javascript
详解如何webpack使用DllPlugin
Sep 30 Javascript
Js类的构建与继承案例详解
Sep 15 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字符串截取中文截取2,单字节截取模式
2007/12/10 PHP
php实现文件下载代码分享
2014/08/19 PHP
10个超级有用值得收藏的PHP代码片段
2015/01/22 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
Vue组件中slot的用法
2018/01/30 Javascript
使用webpack3.0配置webpack-dev-server教程
2018/05/29 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
js基于canvas实现时钟组件
2021/02/07 Javascript
python的即时标记项目练习笔记
2014/09/18 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
2015/03/31 Python
讲解Python中的标识运算符
2015/05/14 Python
Python实现简单登录验证
2016/04/13 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python实现简单文件读写函数
2021/02/25 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
viagogo法国票务平台:演唱会、体育比赛、戏剧门票
2017/03/27 全球购物
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
自我评价格式
2014/01/06 职场文书
小学教师岗位职责
2015/04/02 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
Python OpenCV实现图形检测示例详解
2022/04/08 Python