这一段js不是很明白,为什么要判断长度是否大于零啊,stop(true,true)为什么用这个呢,不是很理解
// 导航移上去显示二级导航的效果 $(".nav_list_all").find(".nav_list").hover(function(){ if($(this).find(".nav_child").length>0){ $(".nav_child_bg").stop(true,true).slideDown(200); $(this).find(".nav_child").stop(true,true).slideDown(300); } },function(){ $(".nav_child_bg").stop(true,true).slideUp(300); $(this).find(".nav_child").stop(true,true).slideUp(200); })
Don’t understand the implementation of secondary navigation production? -PHP Chinese website Q&A-Don’t understand the implementation of secondary navigation production? -PHP Chinese website Q&A
Let’s take a look and learn.
1.不判断长度是否大于零。长度为零时(".nav_child").stop执行会报错,因为无可执行对象,同时也可以节省操作,长度为零则不需要展开。$(".nav_child_bg")(应该是背景吧),背景是不需要移动的。
2.stop(true,true)。hover会在移入和移出的时候触发分别触发一个回调函数。你想一下,触发移出的时候,移入动画还未执行完毕(仍然在展开),是不是就不是你预期的移出的效果(收回),会有一定滞后(已经需要收回了,动画还在执行展开)。而且把stop()都去掉频繁hover会导致无操作时动画还在跑。