【问题标题】:Webkit ondrop event while dragging拖动时的 Webkit ondrop 事件
【发布时间】:2011-02-10 22:58:15
【问题描述】:

我正在尝试拖动一个 img,因此它会触发 IE 的 ondragenter 和标准浏览器的 dragover 事件,在 IE 和 FF 上,用户拖动后它可能会触发 ondrop 事件,但是基于 Webkit(chrome 和 safari),我需要在 dragover 事件上取消或 preventDefault() ,这样做将禁用拖动。关于解决这个问题的任何想法?谢谢

更新:我指的是 designMode='on'

【问题讨论】:

  • 您找到解决方案了吗?它看起来像 chrome 和 safari 中的一个奇怪的错误。

标签: drag-and-drop safari webkit google-chrome


【解决方案1】:

HTML5 规范的默认行为是自动取消然后在 dragOver/drageEnter 上拖动操作,除非您自己取消(返回 false 和 e.preventDefault())该事件。它根本不应该取消拖动动作。

一开始似乎有点奇怪。但我使用了这段代码,它可以工作。

aDivElement.ondrop = function(e) {
  alert("yo");
};

aDivElement.ondragenter = function(e) {
      e.dataTransfer.dropEffect = 'move'
      e.preventDefault();
      return false;
 };

aDivElement.ondragover = function (e) {
   e.dataTransfer.dropEffect = 'move';
   e.preventDefault();
   return false;
 };

【讨论】:

  • 试过这个并且它确实有效,如果你将它应用到用户可以拖动到任何地方的 designMode='on' 并且如果我应用 e.preventDefault() 那么用户的拖动操作被取消并且放置的功能是错误的,因为我需要根据用户放置物品的位置进行一些操作。对此有任何想法吗?谢谢
猜你喜欢
  • 1970-01-01
  • 2021-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
相关资源
最近更新 更多