1

Firefox のドラッグ エンター イベントに問題があります。ドロップ領域でマウスがまだ動いているときに、ブラウザがこのイベントを複数回発生させます。

ドラッグされた項目がドロップ領域に入ると、イベントが初めて発生します。また、マウスが「ドロップ領域」というテキストに入ると、マウスがまだドロップ領域にあることを認識して、イベントが 2 回目に発生します。 .

$(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 の例

4

1 に答える 1

3

最後に、私はこの答えを得ます:

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");
    }
});
于 2014-03-08T09:22:12.290 に答える