2016-07-12 6 views
0
var cl = 0; 
var menu = function(){ 

    if(cl === 0){ 
     $('.menu_nav').animate({left: '0px'}, 200); 

     $('body').animate({left: '285px'}, 200); 

     var cl = cl + 1; 
     console.log("First " + cl); 
    }else{ 
     $('.menu_nav').animate({left: '-285px'}, 200); 

     $('body').animate({left: '0px'}, 200); 

     var cl = cl - 1; 
     console.log("Second " + cl); 
    }; 
}; 

$(document).ready(function(){ 
    $('.menu-btn').on('click', function(){ 
     $(menu); 
    }); 
}); 

클릭 할 때 메뉴 버튼을 사이드 패널에서 열려고하지만 다시 클릭하면 닫아야합니다. 나는 + =과 = + 어느 것도 시도하지 않았다. 나는 내가해야 할 일에 대해 단서가 없다. 그것을 클릭 할 때마다 "처음 1"이 인쇄되고, 절대로 그렇게되지 않습니다.변수를 저장하려고 시도 할 때 작동하지 않습니까?

// 문제가 해결되었습니다. 함수 내에서 변수가 선언 될 때마다 매번 0이되도록했습니다. 이제 함수 외부에 cl을 두었습니다. 변수가 호출 될 때마다 0을 설정하는 대신 변수를 저장하고 변경할 수 있기 때문에 멋지게 작동합니다.

+0

그냥 함수를 호출하면 어떨까요? – Li357

+0

@AndrewL. 왜냐하면 문서가 준비되는 즉시 메뉴 버튼을 클릭 할 때마다 발생해야하기 때문입니다. –

+2

변수를'0'으로 설정하고 다음 행에서'0'이 맞는지 확인하십시오. 어떻게'0'이 될 수 있습니까? –

답변

1

기능 메뉴가 CL의 값을 실행 때마다 var cl = 0;var menu = function(){ 전에 그리고 당신의 기능 변화 모든 var clcl에 내부에 선언과 같은 글로벌 변수를 사용하여 0으로 시도하는 리셋 편이다. 로직에 대해서도 Fiddle을 확인할 수 있습니다.

관련 문제