我对slideDown / slideUp有一点问题。我有一个里面有子菜单的菜单,我想要的是在菜单鼠标上显示子菜单,我这样做:
<script type="text/javascript">
$(document).ready(function(){
$("#menu>li>ul").hide();
$("ul#menu>li a").mouseover(function(){
$(this).next("ul").slideDown('1000');
$(this).next("ul").addClass("current_submenu");
});
$(".submenu>li").click(function(){
$(".current_submenu").slideUp('1000');
});
});
</script>
<ul id="menu">
<li><a class="album" id="beauty-fashion" href="#">Beauty/Fashion</a>
<ul>
<li><a href="#">Beauty 1</a></li>
</ul>
</li>
<li><a class="album" id="covers" href="#">Covers</a></li>
<li><a class="album" id="editorial" href="#">Editorial</a></li>
<li><a class="album" id="advertising" href="#">Advertising</a></li>
<li><a class="album" id="fx" href="#">FX</a></li>
<li><a class="album" id="portraits" href="#">Portraits</a></li>
<li><a class="album" id="taly" href="#">Taly</a></li>
<li><a class="disabled" href="#" id="previousImage">Previous</a></li>
<li><a href="#" id="toggleAnimation">Pause</a></li>
<li><a class="disabled" href="#" id="nextImage">Next</a></li>
</ul>
子菜单向下滑动,但当我从中执行鼠标操作时,它不会再次滑动。 ¿我做错了什么?
非常感谢你的帮助!
答案 0 :(得分:2)
这个javascript应该有效:
$(document).ready(function(){
$("#menu>li>ul").hide();
$("ul#menu>li").hover(function(){
$(this).find("ul").slideDown(200).addClass("current_submenu");
}, function(){
$(this).find("ul").slideUp(200).removeClass("current_submenu");
});
});
查看http://api.jquery.com/hover/,了解它是如何成为mouseenter和mouseleave的简写。
我还注意到你的slideUp和slideDown时间是作为字符串插入的。它应该是一个整数,或者预定义时间的“快速”或“慢速”。
答案 1 :(得分:1)
你可以尝试这个脚本:
$(document).ready(function(){
$("#menu>li>ul").hide();
$("#menu>li>ul>li").click(function(){
$(this).slideUp(1000).removeClass("submenu");
});
$("ul#menu>li").hover(function(){
$(this).find("ul").slideDown(1000).addClass("submenu");
});
});
答案 2 :(得分:0)
您需要将函数绑定到mouseout
事件才能关闭菜单。