我的理解是否对?

我的理解是否对?

我看老师在回答中说页面加载的时候for循环就执行完了,而绑定的弹出事件点击才触发。

这意思是说for循环进行的时候,不管i是几,只要相应的btns[i]没有触发onclick事件,相应的i就不会传入btns[i],这样也就导致所有的btns[i]都不会绑定上 触发onclick事件时执行alert(i)这个操作。

而当页面加载完的时候,所有的btns[i]都没有绑定上onclick事件,而for循环已经执行完毕了,这时i的值已经变为了3,然后在点击每个按钮的时候才会给相应的按钮绑定onclick事件,使它们触发onclick事件的时候执行alert(i)这个操作,而因为此时的i已经变为3且不会再改变,所以点击每个按钮弹出的都是3。


请问以上我的理解是否正确呢?

正在回答

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

2回答

同学你好,第一个说法是对的,只是绑定了事件,没有触发的时候,事件函数中的内容是没有执行的,没有这个内容的。

祝学习愉快~

好帮手慕糖 2020-03-15 09:15:54

同学你好,理解的不准确哦。这里事件是于先绑定,后触发的。

在循环过程中给每个按钮绑定事件(所以每个btns[i]才能指定每个不同的元素,进行绑定事件),但是并没有触发,只有在点击的时候才会触发。

在触发的时候i已经是循环完之后的i值了。所以事件里面的alert(i),弹出的是执行完循环的i。

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

  • 提问者 Aurora_Meteor #1
    意思就是说循环的时候给每个按钮绑定了点击事件,但是相应的事件里面没有内容,当点击事件触发时,才给相应的事件添加了内容alert? 还是说循环的时候给每个按钮绑定了点击事件,相应的事件里面添加了alert,但是没有给alert传入内容,当点击事件触发时,才给相应的alert添加内容i?
    2020-03-15 12:04:38
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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