Jquery 幻灯片切换两个以上菜单选项卡的双幻灯片
我写了这段代码,当只有2个菜单时,它工作得很好,但只要有3个或4个菜单,slideToggle就会出现双幻灯片(闪烁)Jquery 幻灯片切换两个以上菜单选项卡的双幻灯片,jquery,slidetoggle,Jquery,Slidetoggle,我写了这段代码,当只有2个菜单时,它工作得很好,但只要有3个或4个菜单,slideToggle就会出现双幻灯片(闪烁) $(函数(){ $('.menu').hide(); $('#导航a')。单击(函数(){ var idvar=this.id; var menuid='#menu'+idvar; $('.menu').not(menuid.slideUp(function(){ $(menuid.slideToggle(); }); 返回false; }); }); 关于狗的事 关于猫的事
$(函数(){
$('.menu').hide();
$('#导航a')。单击(函数(){
var idvar=this.id;
var menuid='#menu'+idvar;
$('.menu').not(menuid.slideUp(function(){
$(menuid.slideToggle();
});
返回false;
});
});
关于狗的事
关于猫的事
关于马的事
关于奶牛的事
查看该问题的演示:(删除任意两个菜单以查看其工作方式)
这一行就是问题所在:
$('.menu').not(menuid).slideUp( function(){
$(menuid).slideToggle();
});
你要说的是-对于每个不是当前菜单项的菜单项,滑动文本,然后向下滑动当前菜单项。这将执行多次。这就是为什么会出现多次闪烁的原因。你想这样做一次。所以把它分成不同的陈述。向上滑动所有菜单。然后向下滑动当前的一个
这里-这应该是你想要的
$('#nav a').click(function() {
var idvar = this.id;
var menuid = '#menu_' + idvar;
$('.menu').hide();
$(menuid).slideDown();
return false;
});
就像mrtsherman所说的,当你试图滑动所有菜单项时,你只需要向上滑动可见的菜单项。为了保留上下滑动的过渡,我必须在中添加更多的逻辑。看看这个 谢谢大家!!这个答案成功地保留了按钮切换幻灯片的功能,因此,如果Cat已经打开,我单击Cat按钮,Cat将关闭。是的,我想您可能希望:-)代码可以进行一些调整,但它涵盖了所有场景。感谢您解释多次执行的问题。
$('#nav a').click(function() {
var idvar = this.id;
var menuid = '#menu_' + idvar;
$('.menu').hide();
$(menuid).slideDown();
return false;
});