如果table里没有其他的东东 可以用 document.elementFromPoint()找到目标,但是如果table里有很多东东(而且不能预知table可能会有什么,会有几层元素) 就完全没办法了 -_-;;怎么能够有 不管最外层的table里有多少东西,都可以让他背景色变红呢 一个通用的处理方法呢
解决方案 »
- 关闭浏览器 触发事件问题?
- 为什么给div的scrollTop赋值后,scrollTop的值始终为0,请大家指教啊!
- 下拉列表的自作
- 如何把用java从数据库查询得到的结果集list传入到javascript中
- 如何用for 循环得出多个span的值??
- 有谁做过图片界面的播放器吗?
- 求解释这个js功能的详细说明
- 100分送, 数组长度引用和控件名冲突的问题
- 我觉得这个问题比较简单,但我就不会,谁来领分?
- ext-js4.1, grid.Panel怎么更新数据源?
- 请教各位:在javascript中怎么实现点击按钮就可以在同一窗口中打开另一个窗口?????
- 一个小问题,如何判断一个变量是否为空。
那么document.elementFromPoint()能用。
<table width=400 height=300 border=1>
<tr>
<td align=left valign=top>
<div style="position:absolute;">
<div style="position:absolute;width:80;height:60;background-color:#FF0000;left:500px;top:30px;cursor:default;"
onmousedown="setCapture();X=event.x;Y=event.y;myLeft=this.style.pixelLeft;myTop=this.style.pixelTop;"
onmouseup="releaseCapture();"
onmousemove="if(event.button==1){this.style.pixelLeft=myLeft+(event.x-X);this.style.pixelTop=myTop+(event.y-Y);
if(this.style.pixelLeft>=0&&this.style.pixelLeft<=400&&this.style.pixelTop>=0&&this.style.pixelTop<=300)
parentNode.parentNode.parentNode.bgColor='#0000FF';else parentNode.parentNode.parentNode.bgColor='#FFFFFF';}">
<br> Drag me!</div>
</div>
asdfasdfsadfsadf<br><br><img src=asdfasdf width=300 height=120>
</td>
</tr>
</table>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
var curElement,wx,wy,cx,cy,sx,sy,px,py;
var oeventX,oeventY;
//=============================================
function doMouseDown()
{
if ((event.button==1) && (event.srcElement.id=="oframe"))curElement = event.srcElement;oeventX1=event.clientX;
oeventY1=event.clientY;
}function doMouseMove(){
if ((event.button==1) && (curElement!=null)){
// 定位图层
newleft= oframe.offsetLeft+(event.clientX-oeventX1);var obj=document.elementFromPoint(curElement.style.pixelLeft,curElement.style.pixelTop)
while(!(obj.tagName=="TD"&&obj.className=='tdChangeColor')&&obj.parentElement){obj=obj.parentElement}
if(obj.tagName=="TD"&&obj.className=='tdChangeColor')obj.runtimeStyle.backgroundColor=''; if (newleft<0){newleft=0;}//自动调整层横坐标位置
curElement.style.pixelLeft=newleft;
oeventX1=event.clientX; newtop=oframe.offsetTop+(event.clientY-oeventY1);
if (newtop<0){newtop=0;}//自动调整层纵坐标位置
curElement.style.pixelTop= newtop;
oeventY1=event.clientY;
event.returnValue = false;
event.cancelBubble = true;var obj=document.elementFromPoint(curElement.style.pixelLeft,curElement.style.pixelTop)
while(!(obj.tagName=="TD"&&obj.className=='tdChangeColor')&&obj.parentElement){obj=obj.parentElement}
if(obj.tagName=="TD"&&obj.className=='tdChangeColor')obj.runtimeStyle.backgroundColor='#ff0000'; }
}function window.onload(){
document.onmousedown = doMouseDown;
document.onmousemove = doMouseMove;
document.onmouseup = new Function("curElement =null")
}
//-->
</SCRIPT>
</HEAD><BODY BGCOLOR="#FFFFFF">
<div id="oframe" style="position:absolute;left:10;top:30;width:40;background-color:#cccccc">
aaaaaaa<TABLE>
<TR>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
</TR>
<TR>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
</TR>
<TR>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
</TR>
<TR>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
<TD>©</TD>
</TR>
</TABLE></div><table width="300" border="1" cellspacing="3" cellpadding="3">
<tr>
<td class="tdChangeColor">
<TABLE bgcolor="#00ffff">
<TR>
<TD>111</TD>
<TD>11111</TD>
</TR>
</TABLE>
</td>
<td class="tdChangeColor" > </td>
<td class="tdChangeColor"> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td class="tdChangeColor"> </td>
</tr>
<tr>
<td class="tdChangeColor"> </td>
<td class="tdChangeColor"> </td>
<td> </td>
</tr>
</table></BODY>
</HTML></noscript>
</SCRIPT>
================================================================
俺是"老"菜鸟一只, 请各位高手多指教!
------ 好好学习, 天天上网! --------
→→→→→→→→→→→→→→→→→→→→
http://www.boy.net.cn/home0/goldenlove
←←←←←←←←←←←←←←←←←←←←
多谢 CSDN 助手帮我自动加入签名.
www.chinaok.net
================================================================
解决的思路和 ncs2002(还记得那个花落如雨的夜晚吗)的一样