1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【原生js】js动态添加dom 如何绑定事件

【原生js】js动态添加dom 如何绑定事件

时间:2024-01-10 20:50:13

相关推荐

【原生js】js动态添加dom 如何绑定事件

首先要明白浏览器在加载页面的时候是按顺序来加载的,这样以来就很清楚了,js动态添加dom以后,这些dom并没有绑定事件,这个时候最简单的一个办法就是:将绑定事件的方法封装到一个函数A中,在动态添加完dom以后立即执行一次函数A即可。

需要注意的是,在你可能同时需要添加许多的dom,不要添加一个就执行一次函数A,这样会增加浏览器的负载,你需要在所有dom添加完以后在执行函数A,例如你用一个for循环遍历dom组合并拼接成一个字符串,然后添加到某个父级dom里面,这个时候你需要在循环外添加一次就可以了。

代码如下:

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4<meta charset="UTF-8"> 5<title>添加div并绑定点击事件</title> 6<style> 7 div.btn{8 width: 200px; 9 height: 50px;10 line-height: 50px;11 text-align: center;12 border: solid 1px #000;13 cursor: pointer;14 }15 div.innerDiv{16 width: 50px;17 height: 50px;18 background-color: black;19 margin: 10px;20 cursor: pointer;21 }22</style>23 </head>24 <body>25 <div class="aa">26<div class="btn">添加div并绑定点击事件</div>27<div class="outerDiv"></div>28 </div>29 <script>30function getClass(classname) {31 return document.getElementsByClassName(classname);32}33getClass('btn')[0].onclick=function () {34 addDom();35}36 // 将点击事件封装为函数37function funA() {38 for(var i=0;i<getClass('innerDiv').length;i++){39 getClass('innerDiv')[i].onclick=function () {40 alert(this.innerText);41 }42 }43}44 // 将添加dom封装为函数45function addDom() {46 var oldHtml='';47 for(var j=0;j<6;j++){48 oldHtml+='<div class="innerDiv">'+j+'</div>'49 }50 getClass('outerDiv')[0].innerHTML=oldHtml;51 funA();52}53 // 如果将函数A放在这里就不会起作用的54 // funA();55 </script>56 </body>57 </html>

个人博客:[**午后南杂**](http://recoluan.gitlab.io)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。