2012-01-03 45 views
0
var holder = document.getElementById('cms'); 

holder.ondragstart =function(e) 
{ 
dragID =e.srcElement.id; 
dregCl =e.srcElement.getAttribute('class'); 
if(dragID ==='cms_tools'){ cmsPanel =document.getElementById('cms_tools'); } 
} 

holder.ondragover = function(e) 
{ 
if(dragID ==='cms_tools') 
{ 
cmsPanel.style.top = (e.clientY-7) +'px'; 
cmsPanel.style.left = (e.clientX-250) +'px'; }} 

holder.ondragend = function(e) 
{ 
delete window.dragID; 
if(dregCl ==='imglib'){ 
e.target.removeAttribute('width'); 
e.target.removeAttribute('height'); 
e.target.removeAttribute('class'); } } 


holder.ondrop = function (e) 
{ 

} 

它看起來應該很簡單。我有一個面板中的圖像,它們的寬度和高度都是一樣的,並且在圖像丟失時需要將它們移除。您現在看到的代碼會執行此操作,但會將其應用於源圖像而不是目標圖像。我似乎無法找到什麼應該是一個單詞解決方案來解決圖像被丟棄,而不是源圖像。請保持答案限制爲標準的JavaScript,沒有專有的庫或複雜的建議。請不要簡單地關閉此線程,因爲此項目的要求不包括上述例外情況。先謝謝你。如何在拖放操作中刪除放置圖像的屬性?

回答

0
holder.ondragstart =function(e) 
{ 
Img_Src_Drop =e.target.getAttribute('src'); 
dragID =e.srcElement.id; 
dregCl =e.srcElement.getAttribute('class'); 
if(dragID ==='cms_tools'){ cmsPanel =document.getElementById('cms_tools'); }} 
holder.ondragover = function(e) 
{ 
if(dragID ==='cms_tools') 
{ 
cmsPanel.style.top = (e.clientY-7) +'px'; 
cmsPanel.style.left = (e.clientX-250) +'px'; }} 
holder.ondragend = function(e) 
{ 
delete window.dragID; 
if(dregCl ==='imglib'){ 
e.preventDefault; 
document.execCommand('InsertImage',null,Img_Src_Drop); }} 
holder.ondrop = function (e) 
{ e.preventDefault; } 

這只不過是一個字,但解決方法是簡單地preventDefault並插入一個新的圖像。不是我正在尋找的東西,但它可以按需要工作。希望這篇文章能夠幫助其他人處於類似的狀態。