2012-01-03 46 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并插入一个新的图像。不是我正在寻找的东西,但它可以按需要工作。希望这篇文章能够帮助其他人处于类似的状态。