2013-05-19 4 views
0

웹 사이트에 링크를 표시하고 있습니다.Jquery Toggle 링크의 기본값 방지

사용자가 링크를 클릭하면 URL을 즉시 이동하지 않아도됩니다. 대신 인라인 팝업 상자에 면책 조항이 표시되어야합니다. 그런 다음 사용자는 링크를 두 번 클릭하여 URL로 이동할 수 있습니다 (또한 면책 조항이 숨겨집니다).

Prevent Default을 사용하면 링크의 기본 동작을 사용하지 않도록 설정할 수 있습니다 (사용자가 아무데도 걸리지 않도록).

그리고 toggle()을 사용하여 팝업 상자를 표시하거나 숨길 수 있다는 것을 알고 있습니다.

그러나 기본값을 어떻게 토글 할 것인지 잘 모르겠습니다.

여기에 "인라인 팝업 상자"나는 HTML 문서 안에 표시 상자를 참조 시까 내 jQuery 코드 (JS 바이올린이 here입니다)

(function($) { 
    $(document).ready(function() { 
     "use strict"; 
     $(".ui-popbox a").click(function(e) { 
      e.preventDefault(); 
      $("[class^='ui-popbox-']").fadeToggle(); 
     }); 
    }); 
})(jQuery); 

입니다. 나는 팝업 창을 의미하지는 않는다.

당신은 부인이 다음과 같이 jQuery를 박고 여부되어 있는지 확인하는 이벤트 핸들러에 데이터 개체를 전달할 수 있습니다
+0

event.preventDefault() 호출을 포함하는 별도의 처리기 함수를 만든 다음 바인딩하고 바인딩을 해제 할 수 있습니다. – Jason

답변

1

: 객체의 값은 이벤트 사이에 유지됩니다

$(".ui-popbox a").click({popped: false}, function (e) { 
    if (!e.data.popped) { 
     e.preventDefault(); 
     $("[class^='ui-popbox-']").fadeToggle(); 
     e.data.popped = true; 
    } 
}); 

http://jsfiddle.net/HZsQv/6/

.

+0

도움 주셔서 감사합니다. 이 코드의 작동 방식을 이해하려고합니다. Popped라는 변수를 만들고 기본값은 false입니다. 링크를 클릭하면이 변수를 true로 설정합니다. 변수를 true로 설정하면 if 문의 코드가 실행되지 않습니다. 그 맞습니까? 감사! –

+1

@big_smile 바로 가기! –