
$(this).mouseover(function(){
$(this).find('ul').slideDown("1000");
});
});
$(this).find('ul').slideUp("fast");我知道收起是这样写。但是一起怎么写??
谢谢楼下的回答。关键就是想鼠标离开之后下拉是显示的。但是当鼠标移动到另一个LI上面之前显得是下拉收回,显示当前的。
这其实不需要用到循环,而且你将鼠标经过事件放到循环里,思路的出发点就已经错了,你可以这么写,给你个思路.
默认宴州所有li的内容隐藏;
鼠标经过LI时,该li的内容显示.当鼠标经过下一个li的时候,正在显示的li隐藏,鼠标所在的li显示.当鼠标移除时,所有可见的li隐藏;
关键的jquery方法:visible 匹配可见的元素;
根据你问题的代码,我大致猜测可以这轿基么写:
<script>
$("li.mainlevel").hover(function(){
$hideUl=$(this).parent().find('ul:visible').slideUp('1000');
/*其实我觉得,上面这行代码可以省略掉,直接就是鼠标经过时当前显示;鼠标移出时,刚刚的隐藏,这样,无论你鼠标过到哪个,都是只显示一个晌帆蔽;*/
$(this).find('ul').slideDown('1000');
},function(){
$(this).find('ul').slideUp('1000');
})
</script>
$("盯培li.mainlevel").each(function(i){
$(this).mouseover(function(){
$("li.mainlevel").slideUp("fast");//先全部收起
$(this).find('ul').slideDown("1000");//展开拍行当凯贺唯前的
});
});
$("棚首胡链拦li.mainlevel"芹睁).hover(function(){
$("li.mainlevel").slideUp();
$(this).slideDown();
})
$(this).parent().find("div:visible").slideUp("fast");
$(this).find(".o2").slideDown("1000");先把已经显示的戚差slideup掉,再举孙把当前高答皮的slideDown