javascript - addEventListener 为什么事件默认就执行了?
巴扎黑
巴扎黑 2017-04-11 13:07:05
[JavaScript讨论组]

以下代码,给class="inner"元素添加点击事件,但是打开浏览器事件就被执行了,并且传入的事件对象是undefined


o

i

打开浏览器 事件就执行了,并且传入的event=undefined

巴扎黑
巴扎黑

全部回复(5)
PHPz

去掉里面的参数,不能这么写。

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()
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号