Javascript ondrop没有做任何事情

时间:2014-01-28 00:17:51

标签: javascript

我无法弄清楚拖放,看了很多教程和问题,但是当我放下笑脸时,没有任何反应。我认为它会起作用,因为它适用于ondragstart。

HTML:

<div id='dragging'></div>
<img draggable ='true' src ="http://img87.imageshack.us/img87/5673/rotatetrans.png" id="smiley"/>

的javascript:

var smiley = document.getElementById('smiley');
var dragging = document.getElementById('dragging');
smiley.ondragstart = function(){
  dragging.innerHTML = 'You are dragging!';
};
smiley.ondrop = function(){
  dragging.innerHTML=' ';
};

我也试过这个: 的javascript:

smiley.addEventListenter('ondrop',dragging.innerHTML=' ');

3 个答案:

答案 0 :(得分:3)

你已经阅读了教程,但似乎没有正确的教程。

为了触发drop事件,您首先必须取消dragoverdragenter事件。没什么意义,但那可以起作用:

document.ondragover = function(e) {
    e.preventDefault();
};
document.ondragenter = function(e) {
    e.preventDefault();
};

就像Patrick Evans在评论中注意到的那样,你必须在一个放置区域设置drop事件监听器,而不是在被拖动的元素本身上设置。可能也是document

document.ondrop = function(e) {
    dragging.innerHTML = ' ';
};

这是关于所有这些废话的article by Peter Paul Koch(警告:提前说)。

答案 1 :(得分:0)

试试这个

dragging.addEventListenter('drop', function() {
    dragging.innerHTML=' Dropped '
}, false);

而不是

smiley.addEventListenter('ondrop',dragging.innerHTML=' ');

addEventListener的第二个参数是一个函数。第三个参数决定是否在冒泡期间捕获事件

并且,假设在显示图像的同一div上发生了放置操作

答案 2 :(得分:0)

试试这个 w3schools drag and drop

#mickjguy