扫码关注官方订阅号
以下代码,给class="inner"元素添加点击事件,但是打开浏览器事件就被执行了,并且传入的事件对象是undefined
o i
o
i
打开浏览器 事件就执行了,并且传入的event=undefined
去掉里面的参数,不能这么写。
conInfo 是一个函数, 你在它后面加上 (event), 相当于执行了
函数,而event是未定义的参数,所以会显示函数已执行,并打印出
undefined.
dInner.addEventListener('click',conInfo(event),false);
写成
dInner.addEventListener('click',conInfo);
dOuter.addEventListener('click',conInfo(event),false); //conInfo(event) 有括号当然就执行了啊 //直接写成函数的名字就可以conInfo //click点击事件默认参数就有一个e,所以不用特意的去传
你这样写不直接运行才怪。带括号函数就直接运行了,而事件需要的是回调函数,点击才执行。而且我有点奇怪你为什么要把回调分出来写呢?
dInner.addEventListener('click',conInfo,false); dOuter.addEventListener('click',conInfo,false);
conInfo 写成回调函数就行了 比如
() => { conInfo() }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
去掉里面的参数,不能这么写。
conInfo 是一个函数, 你在它后面加上 (event), 相当于执行了
函数,而event是未定义的参数,所以会显示函数已执行,并打印出
undefined.
dInner.addEventListener('click',conInfo(event),false);
写成
dInner.addEventListener('click',conInfo);
你这样写不直接运行才怪。带括号函数就直接运行了,而事件需要的是回调函数,点击才执行。而且我有点奇怪你为什么要把回调分出来写呢?
conInfo 写成回调函数就行了 比如