H5 拖拽 dragover 的默认行为是什么?

只有在 dragover 事件中阻止事件的默认行为才能触发 drop 事件

clipboard.png

我的问题就是 dragover 它的默认行为是什么,如果不写 event.preventDefault() 为什么就不能触发 drop 事件。

阅读 9.6k
4 个回答

https://developer.mozilla.org...

Default Action: Reset the current drag operation to "none".

  /* events fired on the drop targets */
  document.addEventListener("dragover", function( event ) {
      // prevent default to allow drop
      event.preventDefault();
  }, false);

嗯,默认应该是不给drop。

新手上路,请多包涵

默认地,无法将数据或者元素放置到其他元素中。如果需要设置允许放置(drop起作用),我们必须阻止对元素的默认处理方式

你自己都说出了答案了。
dragover默认事件就是不触发drag事件,取消默认事件后,才会触发drag事件。
可以这样理解吧

新手上路,请多包涵

这里阻止的默认行为是开启可编辑模式,具体就是document.designMode属性, 该属性默认是off关闭的,当开启之后就可以对网页进行编辑,开启的方式就是document.designMode = "on"; 开启之后就不用在监听dragover事件中阻止默认了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题