Javascript JQuery each()第二次不工作

Javascript JQuery each()第二次不工作,javascript,jquery,html,wordpress,Javascript,Jquery,Html,Wordpress,我需要以下方面的帮助: 我正在制作一个jQuery脚本来设置菜单的动画。这就是我需要的;当我点击菜单按钮时,菜单项出现并滑到一边,在退出菜单时,做相反的操作。我尝试使用each()逐个滑动,第一次单击它可以正常工作,但第二次(退出单击)它没有任何作用 我做错了什么 这是我的密码: /*菜单汉堡切换*/ jQuery('#fechado')。单击(函数(){ jQuery('#aberto').fadeIn(); jQuery('#fechado').fadeOut(); /*jQuery('.

我需要以下方面的帮助:

我正在制作一个jQuery脚本来设置菜单的动画。这就是我需要的;当我点击菜单按钮时,菜单项出现并滑到一边,在退出菜单时,做相反的操作。我尝试使用each()逐个滑动,第一次单击它可以正常工作,但第二次(退出单击)它没有任何作用

我做错了什么

这是我的密码:

/*菜单汉堡切换*/
jQuery('#fechado')。单击(函数(){
jQuery('#aberto').fadeIn();
jQuery('#fechado').fadeOut();
/*jQuery('.main navigation').fadeIn()*/
jQuery(“.main导航”).animate({
右图:“50%”,
不透明度:“显示”
}, 500       
);
/*阿尼马诺菜单校长*/
var延迟=0;
jQuery('.菜单项:lt(16)')。每个(函数(){
jQuery(this).delay(delay).animate({
左:'+=200'
},500);
延迟+=100;
});
返回false;
}); 
jQuery('#aberto')。单击(函数(){
jQuery('#aberto').fadeOut();
jQuery('#fechado').fadeIn();
jQuery(“.main导航”).animate({
左:“0%”,
不透明度:“隐藏”
}, 500       
); 
/*阿尼马诺菜单校长*/
var延迟=0;
jQuery('.菜单项:lt(16)')。每个(函数(){
jQuery(this).delay(delay).animate({
右:'+=200'
},500);
延迟+=100;
});  
返回false;
});

jquery animate正在内联css上定义“左”和“右”,这可能会导致冲突。相反,请尝试:

 var delay = 0;
 jQuery('.menu-item:lt(16)').each(function(){ 
    jQuery(this).delay(delay).animate({
        left:'-=200'
         },500);
    delay += 100;
  });
因此,您只需调整“left”属性

对于稍微强一些的jQuery,您也可以考虑使用:

 //    var delay = 0;     - this line no longer needed
 jQuery('.menu-item:lt(16)').each(function(i){    // using i as a counter
    jQuery(this).stop(true, false).delay((i + 1) * 100).animate({
        left:'-=200'
         },500);
  //  delay += 100;   - this line no longer necessary 
  });

这里我们将“i”计数器乘以100以获得时间增量,无需设置另一个变量(延迟)。我们还使用
stop(true,false)
来中断div上的任何活动动画。如果用户在按钮之间单击,而按钮仍在上一次单击的动画中,这将为用户提供一个更具响应性的体验。

请提供一个完整、最少且可验证的代码示例我们也需要您的html代码,请更新您的问题,包括itHTML是wordpress的导航菜单不容易复制到这里。。。我如何提供更多信息?基本上脚本工作正常问题在这里:/*animação menu principal*/var delay=0;jQuery('.menu item:lt(16)').each(function(){jQuery(this).delay(delay).animate({right:'+=200'},500);delay+=100;});返回false;出于某种原因,它只在jquery单击事件中起作用