2014-01-28 44 views
1

我不知道拖放,看了很多教程和问题,但仍然当我放弃我的笑脸时,什么也没有发生。我认为它会起作用,因为它可以在ondragstart上运行。Javascript ondrop没有做任何事情

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=' '); 
+1

你添加ondrop事件你想要项目放在你不想拖动的元素 –

回答

3

你看过教程,但看起来不是正确的。

为了使drop事件被解雇,你第一不得不取消dragoverdragenter事件。没有什么意义,但shoudl工作:

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

而像帕特里克·埃文斯在评论中注意到,你必须设置drop事件listenter上的投递区域,而不是拖动的元素本身。可能是document还有:

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

下面是一个article by Peter Paul Koch这一切废话(警告:咒骂提前)。

+1

和dragenter也应该 –

+0

@PatrickEvans是的,谢谢,我正在检查。这是一段时间,因为我不得不处理那个混乱:) – MaxArt

+0

???不工作http://jsbin.com/OYEdofIl/1/edit – Veronica

0

试试这个

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

而不是

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

二参数addEventListener是一个函数。第三参数确定该事件是否是中鼓泡或不

而且,假设放操作发生在同一div显示图像将被捕获

+0

谢谢,但它没有做任何事 http://jsbin.com/eVIGotE/6/edit – Veronica

+0

如果你使用'addEventListener ',你必须通过''drop'',而不是''ondrop'''。 – MaxArt

+0

我的不好。修正了它 – 2014-01-28 00:26:47

0

尝试以下这个 w3schools drag and drop

#mickjguy

+2

不W3Scools再次!尝试一些MDN文章。 – 2014-01-28 00:27:29

+0

不参考w3schools,他们不是一个可靠的来源 –

+0

这就是我告诉 - 嘿,它的工作原理,应该把aliasm2k放在正确的轨道上。 – user12481