防止默认操作.仅适用于chrome

har*_*077 1 jquery drag-and-drop preventdefault

jQuery的:

$(document).ready(function () {
   $('input[type=file]').uploadImage();
   jQuery.event.props.push('dataTransfer');
   $(".upload-cont").bind('dragenter', function (e) {
      $(".upload-cont").css("border", "1px dashed black;");
   });
   $(".upload-cont").bind('drop', function (e) {
      var files = e.dataTransfer.files;
      e.preventDefault();
   });
   $("body").bind('drop', function (e) {
      e.preventDefault();
   });
});
Run Code Online (Sandbox Code Playgroud)

在Firefox 17,资源管理器8中,当一个文件从桌面拖放到浏览器时,图像将被加载到另一个页面中.我添加了preventDefault(),它在chrome中完美运行.可以做什么以便在ff中阻止动作,即浏览器.

Bla*_*umb 5

尝试更改代码.

$('body').on('dragover drop', function(e){
    e.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

必须取消dragover事件,以便某些浏览器听取丢弃.引用mdn

dragenter和dragover事件的监听器用于指示有效的放置目标,即拖放项目可能被丢弃的位置.网页或应用程序的大多数区域都不是丢弃数据的有效位置.因此,这些事件的默认处理是不允许丢弃.

如果要允许丢弃,则必须通过取消事件来阻止默认处理.您可以通过从属性定义的事件侦听器返回false,或通过调用事件的event.preventDefault方法来执行此操作.后者在单独脚本中定义的函数中可能更可行.