Javascript ondrop 没有做任何事情

标签 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=' ');

最佳答案

您已经阅读了教程,但看起来不是正确的。

为了触发 drop 事件,您首先必须取消 dragoverdragenter事件。没什么意义,但这应该有效:

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

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

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

这是一个article by Peter Paul Koch关于所有这些废话(警告:前面咒骂)。

关于Javascript ondrop 没有做任何事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394511/

相关文章:

javascript - Dojo 1.6 - 设置 Dijit.Select 按标签选择

javascript - Node.js puppeteer - 如何设置导航超时?

Javascript 泛化多个对象的函数 (Raphael JS)

javascript - jQuery remove() 检索

php - 歌曲长度倒计时,需要记录剩余长度

javascript - 解析user.signIn,错误回调未触发

javascript - 如何在 reactJS 中显示 "update"状态?

Javascript:在 Express 应用程序中分解出相同的回调

javascript - 如何在reactjs中添加多个对象?

JavaScript/jQuery : Replace 2nd, 第三个等空格,但不是文本中的第一个空格