1

因为一个演示值得 72.814 字:http: //jsfiddle.net/rudiedirkx/J575b/3/show/

这是最简单的演示。三个事件:drag over、drag leave 和 drop。over并按leave预期工作(添加和删除类)。然而,下降没有!

与 IE 一样,它会在窗口中打开拖放的文件。在 Chrome 中,该事件取消并且拖放文件(在这种情况下被忽略)。

drop 事件甚至不会在 Firefox 中触发!?

这是怎么回事?我认为这有效......(它在 Chrome 中有效。在 Opera 11.64 中无效。)

编辑

已修复,感谢阿德里亚诺:http: //jsfiddle.net/rudiedirkx/J575b/5/show/

4

1 回答 1

2

将您的处理程序更改ondragover为:

drop.ondragover = function() {
    this.classList.add('over');
    return false;
};

请注意Mozilla.orgreturn false中的这一行,您需要或从函数中返回一个 false 值以允许删除。preventDefault()

于 2012-05-22T14:19:40.767 回答