2012-12-05 23 views
0

适用于Chrome,但不适用于Firefox 16.0.2版。甚至不会打扰IE浏览器。 当我从桌面拖动一个文件到FF,放在那里,它应该停止默认操作(打开文件),但它不。显然很容易,只是看不到它,请帮助。这适用于铬,但不适用于FF:拖放事件不会在FF中停止

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<body> 
    Why ?? 
</body> 
<script type="text/javascript"> 

    $(document).bind('drop', docDrop); 

    function docDrop(e) { 
    e.stopPropagation(); 
    e.preventDefault(); 
    return false; 
    } 

</script> 
+0

你在哪里下降,在文本“为什么?”或页面上的其他地方? – robertc

+0

将有一个div,我将放弃它,但现在我试图让它与浏览器文档一起工作。不要看着身体,它与它无关。 – test

回答

0

尝试e.stopImmediatePropagation()。如果这阻止了传播,那么这意味着您已经多次绑定了drop事件。在活动完成之前或之后,您可能需要考虑unbind

+0

试过e.stopImmediatePropagation(),什么也没有。即使我在第一篇文章中给出的简单代码也不起作用,所以没有多重绑定。 – test

0

对,让它自己工作。 因此,这里的未来谷歌搜索解决方案:

如果你想'drop'事件的工作,Firefox还需要'dragover'事件定义。因此,这里的的作品代码:

$(document).bind('dragover', function(e){ 
    e.preventDefault(); 
    return false; 
}); 
$(document).bind('drop', function(e){ 
    e.preventDefault(); 
    return false; 
}); 

也是关于这个问题的另一个话题: How to stop redirecting after `drop` event?

+0

我只是想发布:http://jsfiddle.net/robertc/xJcpP/ – robertc