2010-08-12 5 views
3

다른 요소의 가시성에 따라 토글 링크 텍스트를 변경하는 스크립트를 만들고 싶습니다.toggle()에서 jQuery text()가 변경됩니까?

#form을 볼 수있는 동안 # 양식 컨테이너에 텍스트를 "숨기기 ..."로 표시하고 숨긴 상태에서 텍스트를 "표시 ..."로 지정합니다.

if ($ ('# form'). (": visible")) {다른 방법 : if ($ ('# form'). == "true") {-하지만 작동하지 않습니다.

무엇이 잘못 되었나요? 다른 항목을 토글 할 때마다 텍스트를 변경하는 방법은 무엇입니까?

$('.toggle').click(
    function() 
    { 
     $('#form').slideToggle(); 

      if($('#form').is(":visible")){ 
       $('#form-container a').text("Hide form container"); 
      } 
      else { 
       $('#form-container a').text("Show form container"); 
      } 
    }); 

감사합니다.

답변

0

양식 요소에서 토글을 사용할 수 있습니다.

$("#form").slideToggle(
    function() { 
    //Hide 
    }, 
    function() { 
    //Show 
    } 
); 

출처 : 애니메이션 동안 http://api.jquery.com/toggle/

+0

감사합니다. 나를 위해 일하지는 않았지만 첫 번째 해결 방법을 사용했습니다. – bat

+3

이것이 올바르지 않으면 콜백 함수가 하나만있을 수 있습니다. – bzx

+0

위에서 언급 한 구문은 토글을위한 것이지 슬립 토글을위한 것이 아닙니다 – hsuk

14

그것은 항상 확인, 그래서 당신은 .slideToggle() 콜백의 가시성을 확인할 수 볼 수 수 있습니다 때 마감이 같은 애니 메이팅, :

$('.toggle').click(function() { 
    $('#form').slideToggle(function() { 
    $('#form-container a').text(
     $(this).is(':visible') ? "Hide form container" : "Show form container" 
    ); 
    }); 
}); 
+0

감사합니다. 그러나 애니메이션이 적용되는 동안 왜 항상 표시되어야합니까? 내 코드를 보면 if 문 앞에 이미 표시되거나 숨겨져 있어야합니다? – bat

+2

@bat - 체크하기 전에'.slideToggle()'을 호출하기 때문에 그냥 보이기 시작하면 그냥 보일 수 있지만': visible'입니다. 닫을 때 (400ms) 애니메이션을 찍는 데 시간이 걸리므로 수표가 실행될 때 여전히 닫힙니다 ... 두 경우 모두': visible', 의미가 있습니까? –

관련 문제