如何在’drop`事件后停止重定向?
将文件放入Firefox中的div
后,网页将被重定向到此文件。 我试图在drop
handler中使用jQuery的e.preventDefault()
来阻止这种传播,但是失败了。
看到这个演示 ,将文件放入#test
不会重定向网页,但是进入#test1
会,我想知道原因。 我是否应该始终将处理程序绑定到dragenter
, dragover
, dragleave
和drop
以防止drop
后传播?
更新:
我在html5doctor上找到了一些提示:
要告诉浏览器我们可以放入这个元素,我们所要做的就是取消dragover事件。 但是,由于IE的行为不同,我们需要为dragenter事件做同样的事情。
而Mozilla 声称 :
dragenter
和dragover
事件的监听器用于指示有效的放置目标,即拖放项目可能被丢弃的位置。
但我在firefox上测试了这个演示 , #test1
工作和#test1
没有,似乎Mozilla犯了一个错误,而html5doctor是对的:Firefox需要dragover
才能让drop
工作。
需要在Google Chrome和Safari中取消ondrop
事件才能启动ondrop
事件。
我注意到取消onDragOver还不够,但我还必须取消onDragDrop和onDragLeave。 下面,我将显示日志记录,指示用户正在执行的操作:
然后你的元素……
Drag something here!