2009-10-13 3 views
2

jquery facebox 플러그인을 라이브 이벤트 (플러그인이 아닌 공식 구현)와 함께 사용하려고합니다.Jquery live with facebox plugin

내 기본 페이지가 아약스를 통해 페이지에로드됩니다. 원격 페이지에는 팝업 대화 상자에 표시하려는 다른 원격 페이지에 대한 링크가 있습니다. 나는 이것을 위해 facebox 플러그인을 사용 해왔다.

아래 코드는 작동하지 않고 간단히 원격 페이지를 팝업이 아닌 새 페이지로 뷰포트에로드합니다.

<script type="text/javascript"> 
      jQuery(document).ready(function($) { 

       $('a[rel*=facebox]').live("click", function() { 
        $('a[rel*=facebox]').facebox() 
       }); 
      }); 
      </script> 

이것이 실시간 이벤트를 사용하는 올바른 방법입니까?

내 개발 시스템은 슬프게도에만 [:(], 그래서 내가 코드를 디버깅하기 위해 불을 지르고 사용할 수 없습니다.

답변

4

을 나는 click 이벤트가 facebox를 시작하는 데 너무 늦은 것 같아요.
이 힘을 IE6 구성

:. mousedown 작업

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).facebox(); // this should do, you don't need all links 
}); 

난 당신이 AJAX 호출을 마친 후 나는 facebox을 활성화 제안 중이 추천 할 것입니다 (내 테스트에서 확인을 보였다,하지만 정확히 일치하지 않는 경우)

+0

두 번째 코드 예제가 이상적입니다. 감사! – sabbour

+3

이 사람은 facebox를 n + 1 번 발사합니다. 클릭 할 때마다 facebox가 자체적으로 곱합니다. – fabrik

1

내 동적 콘텐츠를로드 한 후 REL = facebox 난 그냥

jQuery를 (문서) "다시 활성화"모든

에서 작동하지 않을 것 같았다 때문에, 문제를 가지고 있었다, 정말 고마워요. 준비 (함수 ($) { $ ('A [확인해 * = facebox]'). facebox() })

ajax.response 후

봐라 나는 facebox가에서 페이지 대신 팝업 볼 수 있습니다 링크.

고비 감사합니다. FABRIK 주석과

6

보완 코비의 대답은 :

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).unbind('click'); //everytime you click unbind the past event handled. 
    $(this).facebox(); 
}); 

그래서, 당신은 이벤트를 곱 facebox 방지 할 수 있습니다.

크레딧에 kobi.