求大神解答一下小白的问题,谢谢~~

qq_30412191 2020-05-20 06:23:13
我想知道我这个event为什么是不存在的,怎么也获取不了,求大神解答一下谢谢谢
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2020-05-20
  • 打赏
  • 举报
回复
你用alert(document.getElementById("needCheck").onclick);输出下就明白了。 在标签中用 onclick="aa();" 方式设置的事件,会新创建一个事件函数绑定到click事件上,引号中的"aa();"代码会成为这个函数的函数体。 等同于下面js代码绑定事件的效果:
document.getElementById("needCheck").onclick = function onclick(event) {
	aa();
}
事件触发时会由系统调用function onclick(event)函数,并自动给这个事件函数的event参数传值。 但是事件函数中 aa(); 调用时括号是空的,aa函数的event参数当然没有值了。 只有 aa(event); 这样子,把事件函数的event参数再传给aa函数的event参数才行。 而 ul.addEventListener("click", callback, false); 是直接把callback做为事件函数绑定到click事件上。 事件触发时由系统调用的是callback函数,并自动给callback函数的参数传值。
乐予忘忧 2020-05-20
  • 打赏
  • 举报
回复
addEventListener 会默认给回调函数传参 你可以试试如下代码感受一下 function some(callback){ const message = 'hello,word' callback(message) } some(alert) some(console.log)
qq_30412191 2020-05-20
  • 打赏
  • 举报
回复
引用 1 楼 天际的海浪 的回复:
你aa()函数调用时没有传参 <input type="button" onclick="aa(event);" />
,我想请教一下,这个也没有传参数,为什么就可以取到event, 通过标签onclick 和这个有区别? 谢谢大佬
天际的海浪 2020-05-20
  • 打赏
  • 举报
回复
你aa()函数调用时没有传参 <input type="button" onclick="aa(event);" />

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧