关于load事件的event.target值的问题

关于load事件的event.target值的问题

load事件是设置在window上的,在document上面设置无效,可是为什么在事件函数中调用event.target得到的是document对象?

同样的事情在resize这个事件上就不会发生,在事件函数中调用event.target返回的就是window对象

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

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

5回答
好帮手慕星星 2019-08-23 17:16:07

你好,document上不能绑定上这个事件哦,支持onload事件的对象有:

image, layer, window

记住这三个就可以。

祝学习愉快~

好帮手慕星星 2019-08-21 10:04:25

你好,非常抱歉同学,之前没有看清楚同学的问题,给同学解释的scroll。

onload事件可以绑定在window对象上:

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

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

所以onload事件在window调用的时候才会有效。而这个事件不是说写上就可以,需要一个触发条件。这个触发条件就是文档加载完成,所以触发这个事件的元素就是document,event.target结果也就是document文档。

祝学习愉快!

  • 提问者 慕仔2276916 #1
    可是既然触发这个事件的元素是document,为什么没有document.onload呢
    2019-08-23 13:55:21
好帮手慕星星 2019-08-15 17:04:58

你好,使用Chrome浏览器测试,在document上绑定滚动事件是有效的哦,例如:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
    body {
        height: 2000px;
    }
    </style>
</head>

<body>
    <script>
    document.onscroll = function() {
        console.log('scroll')
    }
    </script>
</body>

</html>

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

同学可以测试下,祝学习愉快!

  • 提问者 慕仔2276916 #1
    load事件是设置在window上的,在document上面设置无效,可是为什么在事件函数中调用event.target得到的是document对象?
    2019-08-21 09:26:34
好帮手慕星星 2019-08-14 19:23:13

同学你好,

可以这样理解,scroll事件是文档在滚动的时候触发,无论是绑定在window上还是document上,最终滚动的都是文档,所以e.target触发事件的元素就是document文档本身。

而resize事件是当调整浏览器窗口大小时会触发,本质是拖动改变窗口大小,所以e.target触发元素为window对象。

同学这样理解会简单一些,祝学习愉快!

  • 提问者 慕仔2276916 #1
    load事件是设置在window上的,在document上面设置无效,可是为什么在事件函数中调用event.target得到的是document对象?
    2019-08-15 16:11:55
提问者 慕仔2276916 2019-08-14 16:57:48

补充提问:

scroll事件则是可以绑定到window和document对象上,但不论绑定哪个,event.target都是返回document对象

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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