拖放相关事件

Posted 世界之魂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拖放相关事件相关的知识,希望对你有一定的参考价值。

一、拖放事件

1.任何元素都有一个draggable属性,draggable=true就能拖动,拖动元素时依次触发下列事件:

   (1)dragstart:按下鼠标并移动时,在被拖动元素上触发;

   (2)drag:在元素被拖动时持续触发;

   (3)dragend:拖动停止时触发;

2.当元素被拖动到一个有效的放置目标时,依次触发下列事件:

   (1)dragenter:元素被拖动到放置目标上触发;

   (2)dragover:被拖动元素在放置目标范围内移动时触发;

   (3)drop:元素被放到放置目标中触发;

二、自定义放置目标

当把元素拖动到无效的放置目标时,不会触发drop事件。我们可以把任何元素变成有效的放置目标:

div.ondragenter=function(event){
    if (event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue=false;
    }
}

div.ondragover=function(event){
    if (event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue=false;
    }
}


//取消元素默认放置行为
div.ondrop=function(event){
    if (event.preventDefault){
        event.preventDefault();
    }else{
        event.returnValue=false;
    }
}

三、dataTransfer对象

dataTransfer对象是事件对象的属性,有两个主要方法:setData()、getData(),用法如下:

event.dataTransfer.setData("Text",event.target.id);
var data=event.dataTransfer.getData("Text");

 

以上是关于拖放相关事件的主要内容,如果未能解决你的问题,请参考以下文章

拖放事件触发两次

如何在回收站视图上启用和禁用拖放

C++ GUI 中的拖放事件 (WM_DROPFILES)

fullCalendar 中的拖放事件不起作用

套接字编程中的Java拖放问题

Silverlight & Blend动画设计系列八:拖放(Drag-Drop)操作与拖放行为(DragBehavior)