我遇到了一个使用jQuery显示/隐藏菜单的奇怪行为。
我有一个绝对定位的div,其中包含一个“激活器”div(相对定位),我想在moseover上显示一个菜单。菜单div包含在激活器div中,也是相对定位的。我正在假设,因为它会被激活器包含,当鼠标移动到显示的菜单时,不会触发滚降。当您滚动到显示的菜单上时,显示/隐藏开始发出脉冲,即使在鼠标清除区域后也会显示一秒左右。
CSS看起来像这样
#myAbsolutePos {
position:absolute;
height:335px;
width:213px;
top:508px;
left:0;
z-index:2;
}
#activator {
position:relative;
height:35px;
margin-top:95px;
text-align:center;
width:inherit;
cursor:pointer;
}
#menu {
position:relative;
height:255px;
width:243px;
top:-45px;
left:190px;
padding:20px 25px 20px 25px;
}
#menuContents {
width:190px;
}
jQuery funcs:
$('#activator').mouseover(function () {
$('#menu').show('slow');
});
$('#activator').mouseout(function () {
$('#menu').hide('slow');
});
HTML:
<div id="myAbsolutePos">
<div id="activator">
// content
<div id="menu" style="display:none">
<div id="menuContents">
// content
</div>
</div>
</div>
</div>
要查看行动中的问题,请点击左下角的当前天气位置(雷霆马):http://www.karlsenner.dreamhosters.com/index.php
非常感谢任何建议!
答案 0 :(得分:2)
你可以尝试:
$('#activator').hover(function () {
$('#menu').show('slow');
}, function () {
$('#menu').hide('slow');
});
答案 1 :(得分:0)
我从未有过调整节目/隐藏时间的最好运气。代码工作得很好:
$('#weatherSelected').mouseover(function(){
$('#weatherMenu').show();
}).mouseout(function(){
$('#weatherMenu').hide();
});
我建议的另一件事是不要直接从他们的托管网站链接到脚本。它让网络主人因为窃取带宽而对你很生气。因此,在您的网站上托管jquery循环插件,但使用google的副本(因为他们允许)jquery:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>