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上面之前显得是下拉收回,显示当前的。 展开
$(this).mouseover(function(){
$(this).find('ul').slideDown("1000");
});
});
$(this).find('ul').slideUp("fast");我知道收起是这样写。但是一起怎么写??
谢谢楼下的回答。关键就是想鼠标离开之后下拉是显示的。但是当鼠标移动到另一个LI上面之前显得是下拉收回,显示当前的。 展开
4个回答
展开全部
这其实不需要用到循环,而且你将鼠标经过事件放到循环里,思路的出发点就已经错了,你可以这么写,给你个思路.
默认所有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");//展开当前的
});
});
$(this).mouseover(function(){
$("li.mainlevel").slideUp("fast");//先全部收起
$(this).find('ul').slideDown("1000");//展开当前的
});
});
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$("li.mainlevel").hover(function(){
$("li.mainlevel").slideUp();
$(this).slideDown();
})
$("li.mainlevel").slideUp();
$(this).slideDown();
})
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
$(this).parent().find("div:visible").slideUp("fast");
$(this).find(".o2").slideDown("1000");
先把已经显示的slideup掉,再把当前的slideDown
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询