如何在tr上禁止mouseover事件多次触发???? 用这个a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 来个土办法<script type="text/javascript">var flag=-1;</script><table width="300px" height="300px" border="3"> <tr onmouseover="if(flag<0){alert('ok');};flag++;"> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> <script type="text/javascript">var oTrigerTr=null;function handleMouseOver(e){ var evt=e||window.event; var srcEl=(function(){ var oNode=evt.target||evt.srcElement; while(oNode.tagName!="TR"){ oNode=oNode.parentNode; } return oNode; })(); if(srcEl==oTrigerTr){ return; }else{ oTrigerTr=srcEl; } //add you code here alert(srcEl.innerHTML);}</script><table border="1" width="200"> <tr onMouseOver="handleMouseOver(event)"> <td>11</td> <td>12</td> <td>13</td> <td>14</td> </tr> <tr onMouseOver="handleMouseOver(event)"> <td>21</td> <td>22</td> <td>23</td> <td>24</td> </tr> </table> 呵呵,多谢大伙的帮忙。但是我的问题依然没有解决。以下是我的HTML代码:<script> function handOver(oEvent,trObj){ trObj.cells[1].style.display = ""; } function handOut(oEvent,trObj){ trObj.cells[1].style.display = ""; }</script><table> <tr onMouseMove="handOver(event,this);" onMouseOut="handOut(event,this);"> <td>这里是标题</td> <td style="display:none"> <table> <tr> <td><img src="这里是几个工具图标"></td> <td width="1"></td> <td><img src="这里是几个工具图标"></td> <td width="1"></td> <td><img src="这里是几个工具图标"></td> <td width="1"></td> <td><img src="这里是几个工具图标"></td> <tr> </td> </tr></table>现在的问题就是当我的鼠标在那几个工具图标间移动时,我测试了一下,是因为鼠标从一个图标移动到另一个图标时会触发MouseOut事件,导致图标有闪动,现在要求不允许图标有任何的闪动,大伙有好的思想没?谢了先。 执行onmouseover事件时 1。删除onmouseover事件。 2。添加onmouseout 事件,执行onmouseout时,添加onmouseover事件 <tr onMouseOver=""> <td> <table> <tr> <td> </td> <td> </td> <td> </td> </tr> </table> </td> </tr> 这样 将table的cellspacing设置为0就看不出来闪烁滴效果了<table cellspacing="0"> 不过有个解决办法,如果必须有cellspacing滴话see:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> <!-- var timer = null; function handOver(oEvent,trObj){ if(timer)clearTimeout(timer); trObj.cells[1].style.display = ""; } function handOut(oEvent,trObj){ timer = setTimeout(function(){ trObj.cells[1].style.display = "none"; }, 100 ); } //--> </SCRIPT><table cellspacing="10" border="1"> <tr onMouseover="handOver(event,this);" onMouseOut="handOut(event,this);" style="background:#ccc;"> <td>这里是标题 </td> <td style="display:none"> <table> <tr> <td> <img src="a.gif"> </td> <td width="1"> </td> <td> <img src="b.gif"> </td> <td width="1"> </td> <td> <img src="a.gif"> </td> <td width="1"> </td> <td> <img src="b.gif"> </td> <tr> </table> </td> </tr></table> </BODY></HTML>补充一下你的onmousemove应该是onmouseover吧 再补充:如果你硬要把鼠标放在那个单元格空隙(cellspacing)上面超过setTimeout中给出滴时间的话那也没有办法哦 试试这个<html><script> var rct = null;function handOver(oEvent,trObj){ if( trObj.cells[1].style.display == "" ) return; trObj.cells[1].style.display = ""; rct = table1.getBoundingClientRect(); rct.left += idBody.scrollLeft; rct.right += idBody.scrollLeft; rct.top += idBody.scrollTop; rct.bottom += idBody.scrollTop;}function handOut(oEvent,trObj){ var oNode=oEvent.target||oEvent.srcElement; var x = window.event.x; var y = window.event.y; if( x < rct.left || y < rct.top || x > rct.right -1 || y > rct.bottom -1 ){ trObj.cells[1].style.display = "none"; rct = null; }} </script> <body ID="idBody"><table id="table1" border="1" onMouseOver="handOver(event,this);" onMouseOut="handOut(event,this);"> <tr"> <td>Title</td> <td style="display:none"> <table> <tr> <td > <img src="0001.jpg"> </td> <td width="1"></td> <td > <img src="0001.jpg"> </td> <td width="1"></td> <td > <img src="0001.jpg"> </td> <td width="1"></td> <td > <img src="0001.jpg"> </td> </tr> </table> </td> </tr> </table></body><html> 攻关java客户端技术难点,请高手进来帮忙 fusioncharts 显示一半 页面加载后获取table里任一td的焦点 大家幫我看一下這二行是什麼意思 关于触发,黑夜即将来到,还是没弄出来 输入一个数字,选项表单增加至所输入数字个选项 email的检测,100分 如何判断一个二维数组中,每个元素的数据类型?? 怎样取得session中的值呀,用js 是否有這樣的做法? 我什么时候才能使中农啊? jquery,总报'fn'为空或不是对象的错误提示?
var flag=-1;
</script>
<table width="300px" height="300px" border="3">
<tr onmouseover="if(flag<0){alert('ok');};flag++;">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
var oTrigerTr=null;function handleMouseOver(e){
var evt=e||window.event;
var srcEl=(function(){
var oNode=evt.target||evt.srcElement;
while(oNode.tagName!="TR"){
oNode=oNode.parentNode;
}
return oNode;
})();
if(srcEl==oTrigerTr){
return;
}else{
oTrigerTr=srcEl;
}
//add you code here
alert(srcEl.innerHTML);
}
</script><table border="1" width="200">
<tr onMouseOver="handleMouseOver(event)">
<td>11</td>
<td>12</td>
<td>13</td>
<td>14</td>
</tr>
<tr onMouseOver="handleMouseOver(event)">
<td>21</td>
<td>22</td>
<td>23</td>
<td>24</td>
</tr>
</table>
以下是我的HTML代码:
<script>
function handOver(oEvent,trObj){
trObj.cells[1].style.display = "";
}
function handOut(oEvent,trObj){
trObj.cells[1].style.display = "";
}
</script>
<table>
<tr onMouseMove="handOver(event,this);" onMouseOut="handOut(event,this);">
<td>这里是标题</td>
<td style="display:none">
<table>
<tr>
<td><img src="这里是几个工具图标"></td>
<td width="1"></td>
<td><img src="这里是几个工具图标"></td>
<td width="1"></td>
<td><img src="这里是几个工具图标"></td>
<td width="1"></td>
<td><img src="这里是几个工具图标"></td>
<tr>
</td>
</tr>
</table>
现在的问题就是当我的鼠标在那几个工具图标间移动时,我测试了一下,是因为鼠标从一个图标移动到另一个图标时会触发MouseOut事件,导致图标有闪动,现在要求不允许图标有任何的闪动,大伙有好的思想没?谢了先。
1。删除onmouseover事件。
2。添加onmouseout 事件,
执行onmouseout时,添加onmouseover事件
<tr onMouseOver="">
<td>
<table>
<tr>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</td>
</tr>
这样
see:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD> <BODY>
<SCRIPT LANGUAGE="JavaScript">
<!--
var timer = null;
function handOver(oEvent,trObj){
if(timer)clearTimeout(timer);
trObj.cells[1].style.display = "";
}
function handOut(oEvent,trObj){
timer = setTimeout(function(){
trObj.cells[1].style.display = "none";
}, 100
);
}
//-->
</SCRIPT>
<table cellspacing="10" border="1">
<tr onMouseover="handOver(event,this);" onMouseOut="handOut(event,this);" style="background:#ccc;">
<td>这里是标题 </td>
<td style="display:none">
<table>
<tr>
<td> <img src="a.gif"> </td>
<td width="1"> </td>
<td> <img src="b.gif"> </td>
<td width="1"> </td>
<td> <img src="a.gif"> </td>
<td width="1"> </td>
<td> <img src="b.gif"> </td>
<tr>
</table>
</td>
</tr>
</table>
</BODY>
</HTML>补充一下你的onmousemove应该是onmouseover吧
如果你硬要把鼠标放在那个单元格空隙(cellspacing)上面超过setTimeout中给出滴时间的话
那也没有办法哦
var rct = null;function handOver(oEvent,trObj){ if( trObj.cells[1].style.display == "" )
return; trObj.cells[1].style.display = "";
rct = table1.getBoundingClientRect(); rct.left += idBody.scrollLeft;
rct.right += idBody.scrollLeft;
rct.top += idBody.scrollTop;
rct.bottom += idBody.scrollTop;
}function handOut(oEvent,trObj){
var oNode=oEvent.target||oEvent.srcElement;
var x = window.event.x;
var y = window.event.y; if( x < rct.left
|| y < rct.top
|| x > rct.right -1
|| y > rct.bottom -1
){
trObj.cells[1].style.display = "none";
rct = null; }
} </script>
<body ID="idBody"><table id="table1" border="1" onMouseOver="handOver(event,this);" onMouseOut="handOut(event,this);">
<tr">
<td>Title</td>
<td style="display:none">
<table>
<tr>
<td > <img src="0001.jpg"> </td>
<td width="1"></td>
<td > <img src="0001.jpg"> </td>
<td width="1"></td>
<td > <img src="0001.jpg"> </td>
<td width="1"></td>
<td > <img src="0001.jpg"> </td>
</tr>
</table>
</td>
</tr>
</table></body>
<html>