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

时间:2013-01-11 16:24:55

标签: 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();
   });
});

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

1 个答案:

答案 0 :(得分:5)

尝试更改代码。

$('body').on('dragover drop', function(e){
    e.preventDefault();
});

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

  

dragenter和dragover事件的监听器用于表示   有效的放置目标,即拖动项目的位置   下降。网页或应用程序的大多数区域都不是有效的地方   删除数据。因此,这些事件的默认处理方式不是   允许下降。

     

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