增加行为onmouseover 就可以了.但这里同时改变的HTML节点(td)是在不同的父节点上(tr),我想到的解决的方法是将整个TABLE包含的TD节点映射为一个二维数组.再类似于坐标轴那样的定位,如下图.当鼠标移到某一个TD上,就会得到这个TD的(X,Y)从标,然后将X坐标相同的TD更改底色.
建立二维数组:
上面的代码就把这个数组建立起来,square[i][j],i不代表第(i+1)行,j代表第(j+1)列的TD对象,如:square[2][4],就是指第3行的第5个TD对象(第3个TR中,第5个TD对象).但这样是不能做到定位的,因为任一个TD对象都没有定位的属性(即(X,Y)坐标值),现在有做的就是为每个TD对象增加个一坐标值,那么在JAVASCRIPT 中就是为对象增加属性.
那么,我们为某个TD对象增加属性的代码如下:
square[0][1]._x = 1;//square[0][1] 位于第1行的第2列
square[0][1]._y = 0;
上面这个TD对象从坐标轴上说坐标应该是(1,2),但这个也是相对的,至少对这里这个坐标并没有造成什么负面影响,并且你也发现到了这个是二维数组的下标对应起来了,那么只要我把这个下标调出来并赋给到自身的坐标属性中去.但这样就出现了一个新的问题,就是我找不到JAVASCRIPT中可以数组下标调出来的函数(或方法,属性).
最后我使用了for/in 解决了这个问题
到了这一步,大问题都解决了,要做的就是为每个TD增加一个ONMOUSEOVER行为
为了方便使用,我写了一个二维数组,根据下标值改变作为同一列的的对象,当然这个函数兼容必较差,只能为当前这个效果服务了
为每个TD对象增加onmouseover行为,并增加onmouseout行为,使onmouseout 时还原默认的底色
下面是整个函数的代码
阅读(1703) | 评论(0) | 转发(0) |