2012-06-14 2 views
0

팬시 박스 내에서 맞춤 체크 박스를 사용하려고합니다. 그들은 나타나지만 작동하지 않습니다 (체크 할 수 없음).팬시 박스 내의 맞춤 체크 박스

$(document).ready(function() { 

    $("#fnc").live("click", function(){ 
     $.fancybox($("#hidediv").html(),{ 
      'speedIn'   : 600, 
      'speedOut'   : 200, 
      'overlayShow'  : false, 
      'autoDimensions' : false, 
      'width'   : 620, 
      'height'   : 'auto', 
      'overlayShow'  : true, 
      'overlayOpacity' : 0.8, 
      'overlayColor'  : '#ccc' 

      }); 
$('.defaultP input').ezMark(); 
$('.customP input[type="checkbox"]').ezMark({checkboxCls: 'ez-checkbox-green', checkedCls: 'ez-checked-green'}); 
     }); 
}); 

Fancybox가로드되면 jQuery를 다시 실행하는 방법이 있습니까?

+0

을 수정하면'.live()'를 사용하는 이유가 무엇입니까? 숨겨진 DIV를 대상으로하기 때문에 인라인 콘텐츠로 일반 fancybox 스크립트를 사용할 수 있습니다. – JFK

+0

사용자가 처음 Fancybox를 선택하면 다른 Fancybox를 열 수 있습니다. .live를 사용하지 않으면 fancybox에서 Fancybox를 열 수 없습니다. –

+0

약간 일치하지 않음, http://stackoverflow.com/a/10694032/1055987 및/또는 http://stackoverflow.com/a/10973966/1055987 – JFK

답변

0
My question is how to have custom checkboxes within Fancybox 

그 질문에 대한 대답은 "예", fancybox 내에서 사용자 정의 체크 박스가 할 수있다 (방법을 계속 읽기;?)

"여러 fancyboxes를 엽니 다 .live()의 사용과 관련하여 fancybox "를 사용하는 대신 .on()을 사용하는 것이 좋습니다 (jQuery 1.7 이상 필요). .live() (jQuery 1.7에서는 이미 사용되지 않음)을 사용하고 .click()은 DOM에 동적으로 추가 된 요소를 fancybox에서 열어서 사용하기위한 것입니다.

이 데모에서, 그러나 fancybox (v1.3.4)에서 열린 동적으로 현재 및/또는 추가 요소를 가진를 위해 반드시 사실이 아니다 "당신이 .live()을 사용하지 않는 당신은 fancybox에서 Fancybox을 열 수 없습니다"우리는 것이다 .on()하고 정기적 fancybox $(".selector").fancybox(); 스크립트를 사용하여 (NO. click())

이,

$(document).ready(function() { 
$("body").on("focusin", function(){ 
    $("a.fancybox").fancybox({ 
    'speedIn': 600, 
    'speedOut': 200, 
    'overlayShow': false, 
    'autoDimensions': false, 
    'width': 620, 
    'height': 'auto', 
    'overlayShow': true, 
    'overlayOpacity': 0.8, 
    'overlayColor': '#ccc', 
    'onCleanup': function() { 
    var myContent = this.href; 
    $(myContent).unwrap(); 
    } 
    }); // fancybox 
}); // on 
$('.defaultP input').ezMark(); 
$('.customP input[type="checkbox"]').ezMark({checkboxCls: 'ez-checkbox-green', checkedCls: 'ez-checked-green'}); 
}); // ready 

나를 믿지 마세요 트릭을해야한다, 그것은 HERE 작업을 참조하십시오. 이 DEMO에서는 fancybox 내에서 다른 fancybox를 열 수도 있습니다.

focusin.on() 이벤트로 사용하는 방법에 대한 자세한 내용은 데모가 포함 된 how to bind fancybox to dynamic added element?을 확인하십시오.

또한 onCleanup 옵션을 jQuery .unwrap() 메소드와 함께 포함합니다. 우리가 "인라인"내용을 사용하고 있으므로, this bug

+0

완벽한! 저를 올바른 방향으로 인도 해 주셔서 감사합니다. 불행히도 내 클라이언트가 오래된 jQuery를 사용하고 있고 새로운 클라이언트를 업데이트 할 수 없기 때문에 다음 프로젝트에 사용해야 할 것입니다. :) –

+0

'noConflict'는 jQuery 버전을 업그레이드하는 것과 전혀 관련이 없습니다. mootools 나 프로토 타입과 같은 다른 라이브러리와 함께 jQuery를 사용하는 경우에 사용됩니다. 또한 문서에서 하나 이상의 jQuery 인스턴스가 필요하지 않습니다. 클라이언트가 이전 버전을 사용하는 경우 새 버전으로 교체해야합니다. 예를 들어'.on()'과 같은 새 함수를 추가 할 수있는 동안 현재 함수는 계속 실행됩니다. – JFK