这个问题是对previous question我的问题的跟进(有不同的转折):
我不确定如何恰当地描述我的问题:这是一个只需要调试的错误。
这是我的jsFiddle:http://jsfiddle.net/Wagtail/b6Juh/18/
我需要能够滚动项目A,项目B和项目C,而不是在我的鼠标离开项目A时完全消失。为什么会发生这种情况呢?
以下是为方便起见而复制的JavaScript,HTML和CSS代码:
HTML
<table id="headMenu">
<tr>
<td id="head1">Item 1</td>
<td id="head2">Item 2</td>
<td id="head3">Item 3</td>
</tr>
</table>
<table id="subMenu">
<tr>
<td>Dynamic Content!</td>
</tr>
</table>
CSS代码:
#headMenu{background:rgb(142,180,227);width:90%;height:50px;color:white;font-weight:bold;text-align:center;margin:20px 5% 0px 5%%;vertical-align:middle;}
#subMenu{background:rgb(195,214,155);width:90%;height:50px;color:white;font-weight:bold;text-align:center;margin:1px 5% auto 5%;vertical-align:middle;}
#headMenu td:hover{background:rgb(162,200,240);}
#subMenu td:hover{background:rgb(210,230,170);}
JavaScript代码:
var a = 500, head1 = document.getElementById('head1'), subMenu = document.getElementById('subMenu'), timeout;
head1.onmouseover = function(displayMenu) {
subMenu.innerHTML = '<tr><td>Item A</td><td>Item B</td><td>Item C</td></tr>';
head1.onmouseout = function(getScroll) {
subMenu.onmouseover = function(breakTimeout) {
clearTimeout(timeout);
subMenu.onmouseout = function(endFunction) {
subMenu.innerHTML = '<tr><td>Dynamic Content!</td></tr>';
};
};
timeout = setTimeout(function() {
document.getElementById("subMenu").innerHTML = '<tr><td>Dynamic Content!</td></tr>';
}, a);
};
};
提前感谢任何答案!如果您需要澄清,我将很乐意回复。
答案 0 :(得分:1)
当鼠标从一个子菜单表格单元格移动到另一个子菜单表格单元格时,将触发您的subMenu.onmouseout函数。解决此问题的一种简单方法是在单元格之间添加另一个超时。
我已经更新了你的jsfiddle示例以显示我的意思: