2011-12-20 4 views
0
if (p5goback = true) 
    { 
     $("#p5-6").fadeOut("slow"); 
     p5goback = false; 
    } 
else  
    { 
     $("#p5-6").fadeIn("slow"); 
     var p5goback = true; 
    } 

위의 코드를 사용하여 div를 숨기거나 숨기기 위해 하나의 단추를 사용하고 싶습니다.jQuery 숨기기 및 한 단추로 div 숨기기 해제

위의 코드가 작동하지 않는 것 같습니다. 어떤 아이디어입니까?

HTML이 필요하지 않다고 생각하지만 jsfiddle에서 의견을 남기고 싶습니다.

환호

답변

2

조건은 지정하지 않고 확인합니다. 비교를 위해 ==를 사용 p5goback 이후

if(p5goback == true) { ... } 

는 부울, 당신은 완전히 == true 부분을 남길 수 있습니다 :

if(p5goback) { ... } 

당신은 항상 그것이 무엇의 역에 p5goback을 설정하고 있기 때문에,

$('#p5-6').fadeToggle('slow'); 
p5goback = !p5goback; 

는 다음과 같은 경우 예기치 않은 동작을 일으킬 수 있습니다.(또는 #p5-6 가시성)은 아무 것도 변경되지 않습니다. else 어떤 시나리오가있는 경우 경우 에만#p5-6 가시성 또는p5goback 부울 값이 변경)

상태, 당신은 다음처럼 작성할 수있는이 두 변수 사이에 항상 일치하지만 가독성을 앓고 있는지 확인하려면 다음

$.fn[ p5goback ? 'fadeOut' : 'fadeIn' ].call($('#p5-6'), 'slow'); 
p5goback = !p5goback; 

위의 코드는 p5goback의 값에 따라, $.fn.fadeOut또는$.fn.fadeIn을 호출하고 : 그것에서, 당신은 단지 조건을 사용하여 더 나을 수 있습니다 p5goback을 현재 값의 반대 부울 값으로 설정합니다.

0

버튼 안에 들어 있다고 가정 해 보겠습니다. 사용할 방법을 선택하십시오. 대신 fadeIn/페이드 아웃의 당신은

$("#p5-6").toggle("slow");

을 사용할 수 있습니다 또한 당신은 당신의 if 문 수정해야합니다 if (p5goback == true)

0

당신이 .fadeToggle() 기능을 사용하는 경우 더 아름다운 것)

$("#p5-6").fadeToggle("slow");