JS层移支示例代码
课程安排
LABEL {
CURSOR: hand; COLOR: lightblue; TEXT-DECORATION: underline
}
thisRegObj.maxX) nLeft=thisRegObj.maxX-nWidth;
if (nLeftthisRegObj.maxY) nTop=thisRegObj.maxY-nHeight;
if (nTop
var newObj=null;
DragObject.prototype.bind=bindToCell;
//把拖动元素绑定到单元格
function bindToCell(cell){
if (cell==null) return;
this.cell=cell;
absoluteMove(this.element,cell,(cell.offsetWidth-this.element.offsetWidth)/2,(cell.offsetHeight-this.element.offsetHeight)/2);
}
//当完成拖动后,调整位置
function finishDrag(element){
var dragObj=getRegObj(element);
if (dragObj==null) return;
//按中点来计算位置
var pt=new Point(element.offsetWidth/2,element.offsetHeight/2);
pt.clientToScreen(element);
var oldZIndex=element.style.zIndex;
element.style.zIndex=-1000;
var cell=document.elementFromPoint(pt.x-document.body.scrollLeft,pt.y-document.body.scrollTop);
//拖动是否有效
if (cell!=null){
if (cell.tagName=="TD"){
//如果放在单元格上,就进行调整
var anotherDragObj=getDragObjectByCell(cell);
if (anotherDragObj==null){
dragObj.bind(cell);
}
else{
//交换
anotherDragObj.bind(dragObj.cell);
dragObj.bind(cell);
}
}
else{
//如果不是放在单元格上,要查看是否属于DIV
var div=getParent(cell,"DIV");
if (div!=null){
var anotherDragObj=getRegObj(div);
if (anotherDragObj!=null){
//如果是另一个DragObject,就交换
var c=anotherDragObj.cell;
anotherDragObj.bind(dragObj.cell);
dragObj.bind(c);
}
else{
dragObj.bind(dragObj.cell);
}
}
else{
dragObj.bind(dragObj.cell);
}
}
}
else{
//如果不是单元格,就还原
dragObj.bind(dragObj.cell);
}
element.style.zIndex=oldZIndex;
}
待排课程
已排课程(上午)
已排课程(下午)
已排课程(晚上)
语文
newObj=registerDrag(document.all("1"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(0).cells(0));
数学
newObj=registerDrag(document.all("2"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(1).cells(0));
物理
newObj=registerDrag(document.all("3"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(2).cells(0));
化学
newObj=registerDrag(document.all("4"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(3).cells(0));
英语
newObj=registerDrag(document.all("5"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(4).cells(0));
政治
newObj=registerDrag(document.all("6"));
newObj.onDragEnd=finishDrag;
newObj.bind(document.all("LeftTable").rows(5).cells(0));
//重定位
function relocate(){
for (var i=0;i0) strAction=strAction+"&count="+lngIndex;
strAction="MainPageCenter.jsp"+strAction;
window.location.href=strAction;
}
//根据绑定的Cell来得到DragObject
function getDragObjectByCell(cell){
for (var i=0;i
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]