2014-01-28 118 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