改成这样试试<TABLE bgcolor=red border=1>
<TR>
<TD onmousemove=alert(this.Myflag) Myflag="1">
<TABLE bgcolor=yellow border=1>
<TR>
<TD>为什么呢?</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
<TR>
<TD onmousemove=alert(this.Myflag) Myflag="1">
<TABLE bgcolor=yellow border=1>
<TR>
<TD>为什么呢?</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
在你鼠標移到里面的<TABLE>后,触发ALERT,用空格按就会出现两次,第一次是最里面的<TD>,第二次是<TD onmousemove=alert(this.Myflag) Myflag="1">
你试下,如果当当把鼠標移到边框框处(就是代码里<TD onmousemove=alert(this.Myflag) Myflag="1">的地方),只会有一个ALERT.
有两个是因为触发了两次<TD>事件.
要么,你的代码里有两个TABLE,外面那个是没用的嘛,把它去掉了.留下里面的TABLE.把<TD onmousemove=alert(this.Myflag) Myflag="1">这项放在里面的TD里了...
第一次触发是因为你的鼠标进入td和中间那个table之间的缝隙里了 你确认掉
再走就over到里面的table了 没事情发生 但是等你的鼠标划出里面的table的边进入里面的table和他的td之间的缝隙的时候,又over了触发事件的td
所以...
<TABLE bgcolor=red border=1>
<TR>
<TD >
<TABLE bgcolor=yellow border=1>
<TR>
<TD onmouseover=showmenu(this) Myflag="1">为什么呢?</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE><SCRIPT language=javascript>
function showmenu(obj)
{
alert(obj.Myflag);
}
</SCRIPT>
可以了。绝对是一次了:)
<TR>
<TD onmouseover=showmenu(this) Myflag="1">
<TABLE border=10 cellpadding="10" cellspacing="10" bgcolor=yellow>
<TR>
<TD>为什么呢?</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE>
慢慢移鼠标进去观察一下mouseOver的过程
你里面的table是做什么用的?
<TR>
<TD >
<TABLE bgcolor=yellow border=1>
<TR>
<TD onmouseover=showmenu(this) Myflag="1">为什么呢?</TD>
</TR>
</TABLE>
</TD>
</TR>
</TABLE><SCRIPT language=javascript>
function showmenu(obj)
{
alert(obj.Myflag);
}
</SCRIPT>
这段代码运行后和你原先的在视觉上有区别吗?