有点糊涂了 传入的到底是window对象还是拖拽事件的对象

有点糊涂了 传入的到底是window对象还是拖拽事件的对象

http://img1.sycdn.imooc.com//climg/5b7a656a00018b3502380029.jpg这里传入的是window的event对象

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

这里打印出来的是拖拽事件的对象

但是e.preventDefault()又是window对象的方法


这就有点搞糊涂了 老师可以帮忙解释下吗?谢谢

正在回答

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

2回答

这里因为event没有在其他地方被定义,因此,这样写ondrop="drop(event)"的目的是为了实现IE和火狐浏览器中event的传递。因为在IE中,event是全局的(即:公用的)相当于window.event,而火狐浏览器中的event则是必须存在事件中,必须要写。为了兼容浏览器,即都能在两个浏览器上正常运行,所以绑定的js事件函数默认传递的参数是event,这里的event在IE上指window.event简写event,在火狐浏览器中则是事件onchange固有的参数e,简单的理解就是为了兼容浏览器的。希望可以帮到你!

  • Beckybei 提问者 #1
    老师我的意思是 在函数体中打印console.log(e) 并没有preventDefault()方法。 打印出来的结果是这个 DragEvent {isTrusted: true, dataTransfer: DataTransfer, screenX: 589, screenY: 498, clientX: 104, …} 请问问什么可以直接使用?
    2018-08-21 13:29:07
  • Beckybei 提问者 #2
    我找到了老师 ,谢谢
    2018-08-21 15:18:15
大迷糊虫 2018-08-20 16:07:04

preventDefault() 方法阻止元素发生默认的行为,语法为:event.preventDefault(),event规定阻止的事件的默认动作,这个 event 参数来自事件绑定函数。根据事件绑定代码ondrop="drop(event)"和函数function drop(e){}综合理解一下吧~

  • 提问者 Beckybei #1
    就是说event.preventDefault( )这个和函数function drop(e)参数没有关系是伐
    2018-08-21 09:36:54
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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