我正在使用JQuery使用slideToggle
函数显示隐藏的Div。这工作正常,但我想在鼠标悬停在它上方时保持Div可见。
我已经搜索了很多,我认为我需要在添加类时做一些事情,但我今天才开始使用JQuery而且我无法理解它。非常感谢任何帮助,我确信我写的不是最有效的方法。
由于
HTML
<div id="wrapper">
<div id="header">
<div id="logo"></div>
<div id="navHeader"></div>
</div>
<div id="navContent" style="display:none;"></div>
<div id="totalContent"></div>
</div>
JQuery的
<script>
$(document).ready(function () {
$("#navHeader").mouseover(function () {
$("#navContent").slideToggle(1000);
});
$("#navHeader").mouseout(function () {
$("#navContent").slideToggle(1000);
});
});
</script>
我尝试添加它并玩它以保持div可见,但它不起作用。
$("#navContent").hover(function(){
$("#navContent").show();
});
答案 0 :(得分:2)
如果您不想将内容移动到子位置,可以执行以下操作:
$(document).ready(function () {
var hoverTimeout;
$("#navHeader").mouseover(function () {
if (hoverTimeout) {
clearTimeout(hoverTimeout);
}
$("#navContent").slideToggle(1000);
});
$("#navContent").mouseover(function () {
if (hoverTimeout) {
clearTimeout(hoverTimeout);
}
});
$("#navHeader, #navContent").mouseout(function () {
hoverTimeout = setTimeout(function () {
$("#navContent").slideToggle(1000);
}, 500);
});
});
答案 1 :(得分:1)
这就是我提出的,但你需要重新安排你的元素。 navContent需要是navHeader的子代 因此,这可能适用于您,也可能不适合您,因为您可能会受到限制......
但在这里......
$('#navHeader').hover(function() {
$(this).find('#navContent').slideToggle(); });
注意CSS也是如此,你需要补偿标题元素的高度,不管它是多高.....所以菜单在下面。