为什么之前视频课里不用onload

为什么之前视频课里不用onload

为什么之前视频课里不用onload,直接写onclick就能弹出啊?

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

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

1回答
好帮手慕慕子 2021-03-10 18:38:23

同学你好,因为之前课程中讲解是将script放在body结束标签前,当浏览器读到js脚本(代码)时,body中的元素已经解析了,然后再执行js代码时,此时已经可以获取到元素了,给元素绑定事件了,所以就可以不用onload方法。如下:

http://img1.sycdn.imooc.com//climg/6048a11309ddfb3f09960570.jpg


本题中是因为将script标签放在了head标签中,当浏览器读到js脚本(代码)时,body中的元素还未解析,所以找不到对应的DOM元素,系统会报错。需要把js脚本放在onload事件中,这样让页面中的元素加载完之后,再执行js代码。如下:

http://img1.sycdn.imooc.com//climg/6048a1960984623e15050381.jpg

祝学习愉快~

  • 提问者 神知 #1

    C选项为什么说onclick事件为空

    2021-06-30 20:42:08
  • 好帮手慕慕子 回复 提问者 神知 #2

    同学你好,因为本题代码中,将script标签直接放在了head标签中,当浏览器读到js脚本(代码)时,body中的元素还未解析,找不到对应的DOM元素,无法绑定点击事件,所以说设置的onclick事件为空。

    可以写一写代码,结合代码实现的效果来帮助自己更好的理解,示例,此时控制台报错信息如下:

    http://img1.sycdn.imooc.com//climg/60dd27bd09c365f107630187.jpg

    祝学习愉快~

    2021-07-01 10:26:46
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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