关于事件函数的参数

关于事件函数的参数

var btns = document.getElementsByTagName('button');
        for (var i = 0; i < 3; i++) {
            btns[i].onclick = function (i) {
                        alert(i + 1);
                    };        
        }

请问一下,绑定事件的时候,把 i 作为参数传入事件函数,为什么却变成了MouseEvent对象?

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

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

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

2回答
好帮手慕粉 2020-04-27 10:55:36

同学你好,我们一般不这样给回调函数设置形参,因为回调函数是匿名函数,也没法给其传实参。如果同学是想实现这个练习题的效果,可以参考如下代码:

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

祝学习愉快~

好帮手慕粉 2020-04-26 17:53:44

同学你好,这里的i就是事件对象e,只是同学起的变量名刚好是i,可以换成别的:

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

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

祝学习愉快~

  • 提问者 慕函数1351374 #1
    我换成k,也是一样的,k就变成事件对象了。我如果只是想把一个变量传进去,怎么传呢?
    2020-04-26 21:33:55
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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