用for循环给元素绑定事件的疑问

用for循环给元素绑定事件的疑问

http://img1.sycdn.imooc.com//climg/5e1978f1091d518609850209.jpg

按照用var 定义i的说法来说,就是事件已经先绑定了,等待触发。那这个应该怎么解释啊???

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2020-01-11 17:13:24

同学你好,let会形成块级作用域,每循环一次可以这样理解,每个块作用域中都会保存当前循环的i值

http://img1.sycdn.imooc.com//climg/5e1991740944eb6704440331.jpg

所以当执行点击事件的时候用的i值就是相对应的。

祝学习愉快!

好帮手慕星星 2020-01-11 15:42:06

同学你好,和var定义原理是一样的,每一个元素都绑定了点击事件,等待触发。

只不过点击事件中的i值不再是for循环结束之后的了(let定义的时候),而是每一次循环相对应的i值:

http://img1.sycdn.imooc.com//climg/5e197c2309a7fadc09540221.jpg

对元素本身绑定点击事件没有影响,影响的是事件中的i值 ,自己可以测试理解下。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 pcy丶 #1
    嗯嗯,每一次循环相对应的i值,这个我知道了。可以讲一下为什么吗? 比如:用var定义的i,在循环绑定结束后,i已经循环过一次,所以i的值是最后一次的值。 那么这里用let 定义的i,在循环绑定结束后,我调用click的函数,他的i为什么是当初循环绑定时候的值呢?
    2020-01-11 16:05:30
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师