首页 > 代码库 > JavaScript利用闭包解决循环绑定事件
JavaScript利用闭包解决循环绑定事件
例子:
<!DOCTYPE html><html><head> <meta charset="utf-8"></head><body> <button></button> <button></button> <button></button></body><script type="text/javascript">window.onload=function(){ var btns=document.getElementsByTagName("button"); for(var i=0;i<btns.length;i++){ btns[i].onclick=function(){alert(i)}; }}</script></html>
执行结果是,每一个按钮点击后弹出的都是3;
因此我们利用闭包的特性来解决循环绑定时,i变量赋值的问题,修改script部分代码如下:
<script type="text/javascript">window.onload=function(){ var btns=document.getElementsByTagName("button"); for(var i=0;i<btns.length;i++){ var col = new alertFunc(i); btns[i].onclick=col.clickFunc; //btns[i].onclick=function(){alert(i)}; }}function alertFunc(i){ this.clickFunc=function(){alert(i)}; }</script>
success~
JavaScript利用闭包解决循环绑定事件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。