2015-11-11 1 views
0

Ceci est mon code mais ne fonctionne pas si je mets la diapositive à l'intérieur de la variable.jquery animer la diapositive ne fonctionne pas

fondu juste et à travailler

$('.sidebar-toggle').on('click', function(){ 

    if($('.sidebar-left').length > 0) { 
     var SideWay = 'left'; 
     var Sidebar = $('.sidebar-left'); 
    } else { 
     var SideWay = 'right'; 
     var Sidebar = $('.sidebar-right'); 
    } 

    var SidebarWidth = Sidebar.css('width'); 

    if(Sidebar.css('display') == 'none') 
    { 
     Sidebar.fadeIn('fast').animate({ SideWay : '0'}, 400); 
    } else { 
     Sidebar.stop().animate({ SideWay : '-' + SidebarWidth}, 500).fadeOut(); 
    } 

}); 
+0

Je suppose que c'est parce que, «SlideWay» est d défini à l'intérieur de 'if', donc il perd sa portée – Rajesh

+0

' var val = {}; val [SideWay] = '-' + SidebarWidth; Sidebar.stop(). Animate (val, 500) .fadeOut(); ' –

+0

@Rajesh Je ne pense pas. JS n'a pas de portée de bloc. Et 'SideWay' est défini à la fois dans' if' et 'else', donc dans n'importe quelle condition, il sera toujours défini. – Tushar

Répondre

0

essayer cette

$('.sidebar-toggle').on('click', function(){ 

    if($('.sidebar-left').length > 0) { 
     var SideWay = 'left'; 
     var Sidebar = $('.sidebar-left'); 
    } else { 
     var SideWay = 'right'; 
     var Sidebar = $('.sidebar-right'); 
    } 
    var animateIt = {}; 
    var SidebarWidth = Sidebar.css('width'); 

    if(Sidebar.css('display') == 'none') 
    { 
     animateIt[SideWay] = '0'; 
     Sidebar.fadeIn('fast').animate(animateIt , 400); 
    } else { 
     animateIt[SideWay] = '-' + SidebarWidth; 
     Sidebar.stop().animate(animateIt , 500).fadeOut(); 
    } 

}); 

vous pouvez jeter un oeil à ce Using a variable for a key in a JavaScript object literal

alors que je ne connais pas votre code complet est juste ce un Example de comment cela fonctionne

+1

merci, c'est bien, shokran –

+0

@ Mahmoud.ryan vous Bienvenue .. Bonne chance :) –