Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 幻灯片切换两个以上菜单选项卡的双幻灯片_Jquery_Slidetoggle - Fatal编程技术网

Jquery 幻灯片切换两个以上菜单选项卡的双幻灯片

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; }); }); 关于狗的事 关于猫的事

我写了这段代码,当只有2个菜单时,它工作得很好,但只要有3个或4个菜单,slideToggle就会出现双幻灯片(闪烁)


$(函数(){
$('.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;
});