javascript - 在 Firefox 中多次触发拖动输入事件

标签 javascript jquery firefox drag-and-drop dragenter

我在 Firefox 上拖动输入事件时遇到问题,当鼠标仍在放置区域上移动时,浏览器会多次触发此事件。

当拖动的项目进入放置区域时,该事件将第一次触发,同样当鼠标进入文本“Dropping area”时,该事件将第二次触发,知道鼠标仍在掉落区。

$(document).ready(function(){

     $(".draggable").on("dragstart",function(event){
      event.originalEvent.dataTransfer.setData("Text","data");
      console.log("start");
     });

     $(".droppable").on("dragenter",function(event){
      event.preventDefault();
      console.log("enter");
     }); 
});

这是 HTML 代码:

    <div  class="widthBorders draggable" draggable="true">
        Draggable Item
    </div>
    <br/><br/>
    <div class="widthBorders droppable">
        <br/><br/>Dropping area
    </div>

这是一个完整的例子:jsfiddle example

最佳答案

最后我得到了这个答案:

var elements = $();
$(".droppable").on("dragenter",function(event){
    event.preventDefault();
    if(event.relatedTarget.nodeType == 3) return;
    if(event.target === event.relatedTarget) return;
    elements = elements.add(event.target);
    if(elements.length == 1) {
        //This code will be executed for once.
        console.log("enter");
    }
});

关于javascript - 在 Firefox 中多次触发拖动输入事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22252049/

相关文章:

javascript - 文档加载后移动 DFP 广告管理系统广告

jquery - 如何在一个页面上拥有多个 jQuery TableSorter 表

javascript - Firefox 中的 onKeyPress 文本框不起作用

Java Selenium 等待元素超时

javascript - 通过单击按钮写入表单

javascript - 上传超过 1 个文件后启用提交按钮

javascript - 为什么 scrollTo() 方法不适用于 iframe?

javascript - $.getJSON 和 google fonts API 在 jQuery 版本高于 1.4.4 的 Internet Explorer 中停止工作

javascript - 如何获取数组中 sibling 的id?

javascript - 使用javascript选定文本的背景颜色