关于绑定点击事件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>变量、作用域</title>
</head>
<body>
<button>1</button>
<button>2</button>
<button>3</button>
<script type="text/javascript">
var btns = document.getElementsByTagName('button');
for (var i = 0; i < 3; i++) {
event(i);
};
function event(i){
btns[i].onclick=function(){
alert(i+1);
}
}
</script>
</body>
</html>
请问老师测试工具例子中和上面这个例子的区别是什么,为什么测试工具里的点击事件可以直接写在循环中
正在回答
同学你好,针对你的问题如下解答:
(1)点击事件是可以放在循环中的;
(2)区别是,视频中的写法类似闭包函数。在点击事件中并没有i这个值,但是需要用到,这时候就会向上查找,查找到for循环中的i。
而同学的代码,通过event方法传递了不同作用域中的i。建议,可以在复习下闭包相关的知识:https://class.imooc.com/lesson/791#mid=19881
如果我的回答帮到了你,欢迎采纳,祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星