晕死啊 原来是不能够写: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 写这行就出错啊
所以不对firefox编程,最多是拿try catch把错误屏蔽了
上面的代码是在ie里面出错啊,不是在firefox,在firefox里面他理都不理啊 主要是写了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 他就只能够从下往上拖动而不能够从上往下拖动啊
<a href = "#1" ondragend="dropend()" style="color:red">drag a link to here I</a><br> <a href = "#2" ondragend="dropend()" style="color:blue">drag a link to here II</a><br> <a href = "#3" ondragend="dropend()" style="color:pink">drag a link to here III</a><br> <a href = "#4" ondragend="dropend()" style="color:pink"><img width=100 height=100 alt="drag a link to here IV"></a><br> <script> function swapobj(a,b) { var c = a.outerHTML; a.outerHTML = b.outerHTML; b.outerHTML = c; } function dropend() { var obj = event.srcElement; var src =document.elementFromPoint(event.clientX, event.clientY); while(src && src.tagName != "A") src = src.parentElement; //alert(src.outerHTML); if(src && src.tagName == "A" && src != obj) { swapobj(obj,src); }
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JK:支持民族工业,尽量少买X货</title>
<style>
.removableObj
{
height:25;position:relative;display:block;background-color:cccccc;
}
</style>
<script language="javascript">
var beginMoving=false;
var sourceObj=null;
var objectObj=null;
function MouseDownToMove(obj){
obj.style.zIndex=1;
obj.mouseDownY=event.clientY;
obj.mouseDownX=event.clientX;
beginMoving=true;
obj.setCapture();
sourceObj=obj;
objectObj=null;
}function MouseMoveToMove(obj){
if(!beginMoving) return false;
obj.style.top = (event.clientY-obj.mouseDownY);
obj.style.left = (event.clientX-obj.mouseDownX);
}
function MouseUpToMove(obj){
obj.clickReturnValue=true;
if(!beginMoving) return true;
obj.releaseCapture();
obj.style.top=0;
obj.style.left=0;
obj.style.zIndex=0;
beginMoving=false;
if(event.clientY!=obj.mouseDownY || event.clientX!=obj.mouseDownX)
{
obj.clickReturnValue=false;
window.setTimeout("swapFun()",20);
}
}function MouseOverFun(obj)
{
objectObj=obj;
}function swapFun()
{
if(sourceObj!=null && objectObj!=null )
sourceObj.swapNode(objectObj);
sourceObj=null;
objectObj=null;
}
</script>
</head><body>
部分代码来自:JK的用鼠标移动TD
<a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">a1</a>
<a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">a2</a>
<a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">b1</a>
<a class="removableObj" onmousedown='MouseDownToMove(this)' onmousemove='MouseMoveToMove(this)' onmouseup='MouseUpToMove(this);' onmouseover="MouseOverFun(this);" onclick="return this.clickReturnValue;" href="about:blank" target="_blank">b2</a>
</body></html>
昨天晚上我已经解决了,我是这样做的:
var beginMoving=false;//begin move
var sourceObj=null; // source object
var objectObj=null; //target object
function MouseDownToMove(obj,event)
{
obj.style.zIndex=1;
obj.mouseDownY=event.clientY;
obj.mouseDownX=event.clientX;
beginMoving=true;
obj.setCapture();
sourceObj=obj;
objectObj=null;
}
function MouseMoveToMove(obj,event)
{
if(!beginMoving)
{
return false;
}
obj.style.top = (event.clientY-obj.mouseDownY);
obj.style.left = (event.clientX-obj.mouseDownX);
//in order to don't open a window,so disable it's onclick
obj.onclick=new Function("return false");
}
function MouseUpToMove(obj)
{
if(!beginMoving)
{
return false;
}
obj.releaseCapture();
obj.style.top=0;
obj.style.left=0;
obj.style.zIndex=0;
beginMoving=false;
window.setTimeout("swapFun()",10);
}function MouseOverFun(obj)
{
objectObj=obj;
}function swapFun()
{
if(sourceObj!=null && objectObj!=null )
{
//enable sourceObj's onclick,in order to open a new window when click
sourceObj.onclick=null;
sourceObj.swapNode(objectObj);
}
sourceObj=null;
objectObj=null;
}就是设置对象的onclick属性
对了,现在暂时不能够结帖
因为我的分还不够
等我够50分的时候再结帐给你
非常感谢你的帮助
他们在firefox下都没有效果
老是提示什么top,left没有属性啊,晕死
也不能够拖动
如果能够跨浏览器那太好拉
仅通过5.5+sp2或以上ie测试
如果想支持其它的浏览器,
需要自行更改代码
但是老是出错
对于event的错误已经搞好
就是那个老是提示什么top left属性出错啊在firefox下面
非常感谢JK
不知道还可以帮下么?
谢谢
<style>
.removableObj
{
height:25;position:relative;
}
</style>
改成
<style>
.removableObj
{
position:relative;
}
</style>
就会出现只能够从下面网上面拖,不能够从上面网下面拖,而我的即使写了
<style>
.removableObj
{
height:25;position:relative;
}
</style>
也不能够从上面网下面拖,只能够从下面往上面拖啊,真的郁闷啊
原来是不能够写:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
写这行就出错啊
主要是写了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
他就只能够从下往上拖动而不能够从上往下拖动啊
<a href = "#1" ondragend="dropend()" style="color:red">drag a link to here I</a><br>
<a href = "#2" ondragend="dropend()" style="color:blue">drag a link to here II</a><br>
<a href = "#3" ondragend="dropend()" style="color:pink">drag a link to here III</a><br>
<a href = "#4" ondragend="dropend()" style="color:pink"><img width=100 height=100 alt="drag a link to here IV"></a><br>
<script>
function swapobj(a,b)
{
var c = a.outerHTML;
a.outerHTML = b.outerHTML;
b.outerHTML = c;
}
function dropend()
{
var obj = event.srcElement;
var src =document.elementFromPoint(event.clientX, event.clientY); while(src && src.tagName != "A")
src = src.parentElement;
//alert(src.outerHTML);
if(src && src.tagName == "A" && src != obj)
{
swapobj(obj,src);
}
}
</script>
但是你的代码在firefox下也没有用啊
他也不理啊
不知道什么原因
我先加分再说
因为我只有40分了,过几天再加
继续求firefox的解决方法
谢谢