jquery each函数的用法? 下面的是循环LI,当前的LI下滑显示。同时想让其他的LI收起怎么做?

$("li.mainlevel").each(function(i){$(this).mouseover(function(){$(this).find('ul').sl... $("li.mainlevel").each(function(i){
$(this).mouseover(function(){
$(this).find('ul').slideDown("1000");
});
});

$(this).find('ul').slideUp("fast");我知道收起是这样写。但是一起怎么写??
谢谢楼下的回答。关键就是想鼠标离开之后下拉是显示的。但是当鼠标移动到另一个LI上面之前显得是下拉收回,显示当前的。
展开
 我来答
黑爪
2013-05-08 · TA获得超过297个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:144万
展开全部

这其实不需要用到循环,而且你将鼠标经过事件放到循环里,思路的出发点就已经错了,你可以这么写,给你个思路.

默认所有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>
fupx2008
2013-05-08 · TA获得超过687个赞
知道小有建树答主
回答量:1203
采纳率:0%
帮助的人:777万
展开全部
$("li.mainlevel").each(function(i){
$(this).mouseover(function(){
$("li.mainlevel").slideUp("fast");//先全部收起
$(this).find('ul').slideDown("1000");//展开当前的
});
});
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
drink51
2013-05-08 · TA获得超过297个赞
知道小有建树答主
回答量:425
采纳率:0%
帮助的人:144万
展开全部
$("li.mainlevel").hover(function(){
$("li.mainlevel").slideUp();
$(this).slideDown();
})
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
精神小伙喵
2013-05-08 · TA获得超过684个赞
知道小有建树答主
回答量:746
采纳率:50%
帮助的人:728万
展开全部
$(this).parent().find("div:visible").slideUp("fast");
$(this).find(".o2").slideDown("1000");

先把已经显示的slideup掉,再把当前的slideDown

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式