关于表格的问题,请高手支招,在线等,急!!!

tina007 2003-10-29 03:37:10
有一个n×n表格,利用鼠标拖动选取其中某个小型矩形区域,例如选取某一2×3区域,放开鼠标,此时,1:我要把选取的这块矩形区域的第一个和最后一个单元格的id号传到后台,2:这段区域的背景色变色,3:重新选择时,原来的选择区域恢复原背景色。

说得明白吗?
...全文
32 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
awaysrain 2003-10-30
  • 打赏
  • 举报
回复
按住Ctrl可以实现多次选择
awaysrain 2003-10-30
  • 打赏
  • 举报
回复
我那个是再点一下左键就恢复了,点右键出菜单
tina007 2003-10-30
  • 打赏
  • 举报
回复
to awaysrain(绝对零度) :

3:重新选择时,原来的选择区域恢复原背景色。
这个,如何实现呢?
tina007 2003-10-30
  • 打赏
  • 举报
回复
感谢ing,这就试试去:)
sjjf 2003-10-30
  • 打赏
  • 举报
回复
学习ing
tina007 2003-10-30
  • 打赏
  • 举报
回复
再次谢谢绝对零度,终于解决了:)
awaysrain 2003-10-29
  • 打赏
  • 举报
回复
更正
----------------------
调用:
<table onmousedown='tabStart()' onmouseup='tabEnd()' id=tab1>

效果看这里:
http://hongjun.freewebpage.org/showTab.htm
awaysrain 2003-10-29
  • 打赏
  • 举报
回复
几个函数,和你的功能也不太一样我记录的是第一个和最后一个单元格的行列号,你自己 修改吧

function tabStart(){
obj=window.event.srcElement;
form1.col1.value = obj.cellIndex+1;
form1.col2.value = form1.col1.value;
form1.row1.value = obj.parentElement.rowIndex+1;
form1.row2.value = form1.row1.value;
}

//获取结束值,并增删color. by cc
function tabEnd(){
var temp=-1;
obj=window.event.srcElement;
form1.col2.value = obj.cellIndex+1;
form1.row2.value = obj.parentElement.rowIndex+1;
if((form1.col1.value==form1.col2.value)&&(form1.row1.value==form1.row2.value)){
if(!event.ctrlKey)
{
delColor();
//addColor();
}
}
else{
addColor();
}
}

//获取 “选择单元位置”的字符串
function addColor()
{
var i,j,temp;
var colRightNum1,colRightNum2;
if(!event.ctrlKey)
{
delColor();
}
colNum1 = form1.col1.value;
colNum2 = form1.col2.value;
rowNum1 = form1.row1.value;
rowNum2 = form1.row2.value;
//alert(colNum1 + "," +colNum2);
try
{
colRightNum1 = tab1.rows[rowNum1-1].cells.length - colNum1;
colRightNum2 = tab1.rows[rowNum2-1].cells.length - colNum2;
}
catch(e)
{
return;
}
if((positionStr=="")||(positionStr==null))
{
positionStr = rowNum1 + "," + rowNum2 + "," + colNum1 + "," + colNum2 ;
}
else
{
positionStr = positionStr + "|" + rowNum1 + "," + rowNum2 + "," + colNum1 + "," + colNum2;
}
try
{
for(i=form1.row1.value-1;i<form1.row2.value;i++)
{
for(j=tab1.rows[i].cells.length-1 - colRightNum1;j<=tab1.rows[i].cells.length-1 - colRightNum2;j++)
{
tab1.rows[i].cells[j].bgColor="gray";
}
}
}
catch(e)
{
return;
}
}

function delColor()
{
if(event.button==2)
{
return;
}
positionStr = "";
for(i = 0;i<tab1.rows.length;i++)
{
for(j = 0;j<tab1.rows[i].cells.length;j++)
{
tab1.rows[i].cells[j].bgColor="#FFFFFF";
}
}
}

调用:

<table onmousedown='tabStart()' onmouseup='tabEnd()'>
awaysrain 2003-10-29
  • 打赏
  • 举报
回复
呵呵,写过这样的代码,我给你找找去

87,899

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧