2010-04-22 71 views
0

我試圖拖動一個img,因此它觸發ondragenter IE和dragover事件的標準瀏覽器,在IE和FF後,用戶拖動它可以觸發ondrop事件,但基於Webkit(鉻和safari),我需要在dragover事件上取消或preventDefault(),這樣做會禁用拖動。任何想法解決這個問題?由於Webkit ondrop事件拖動

更新:IM指的designMode =「上」

+0

您是否找到了解決方案?它看起來像鉻和Safari瀏覽器中的一個奇怪的錯誤。 – 2011-09-09 16:16:53

回答

1

HTML5規範的默認行爲是自動取消,然後除非你取消的dragover/drageEnter拖動動作(返回false和e.preventDefault()),該事件你自己。它不應該取消拖動動作。

起初看起來有點奇怪。但我使用這個代碼,它的工作原理。

aDivElement.ondrop = function(e) { 
    alert("yo"); 
}; 

aDivElement.ondragenter = function(e) { 
     e.dataTransfer.dropEffect = 'move' 
     e.preventDefault(); 
     return false; 
}; 

aDivElement.ondragover = function (e) { 
    e.dataTransfer.dropEffect = 'move'; 
    e.preventDefault(); 
    return false; 
}; 
+0

嘗試了這一點,它確實奏效,如果將此應用於designMode ='on',用戶可以在其中拖動任何地方,並且如果我應用e.preventDefault(),則用戶的拖動操作將被取消,拖放的功能將會出錯因爲我需要根據用戶放置物品的位置進行一些操作。對此有何想法?謝謝 – monmonja 2010-04-23 02:41:42