2010-08-05 4 views
-1

ajax jquery 및 facebox를 사용하는 웹 사이트가 있습니다. 여기에서 데모하십시오 : http://temp.nevergone.eu/facebox.php "#content"div 안에는 facebox를 사용하여 열리는 다른 페이지에 대한 링크가 있습니다.Ajax 및 facebox 문제

아약스 jquery를 사용하여 해당 div의 콘텐츠를 다시로드하면 더 이상 링크가 facebox 효과를 사용하여 팝업되지 않습니다.

div #content의 내용을 변경하는 함수를 호출 할 때마다 호출 할 함수를 만들려고했지만 행운이 없었습니다. 나는 rel = "lightbox"가 포함 된 페이지에 새로운 것을로드 할 때마다 페이스 북을 DOM에 다시 넣거나 새로 고침해야한다는 것을 알고 있지만, 그걸 어떻게 알 수 있습니까? 나는 이것을 안으로 호출합니다. jquery HTML 함수를 사용하면 작동합니다. 하지만로드 기능을 사용하면 작동하지 않을 것입니다.

function updatec() { 
    $("#content").load('sometext.html'); 
    reinit(); 
} 

function reinit() { 
    $('a[rel*=facebox]').facebox() ; 
} 

sometext.html은 <a href="http://www.google.com" rel="facebox">CLICK ME I DONT WORK</a>(if you click it it wont open using facebox,it will open like a normal link)'

답변

0

내가 문제를 가지고 생각이 포함되어 있습니다. 컨텐츠를 삽입하기 전에 facebox 스크립트를 다시 초기화해야합니다.

은 당신이 현재 가지고하는 것은 이것이다 :

당신과 같이 html로 삽입 아래에 REINIT 기능을 이동해야
function reinit() { 
    $('a[rel*=facebox]').facebox() ; 
} 
function updatec() { 
reinit(); 
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT   WORK</a>'); 
    } 

:

function updatec() {  
$("#content").html('<a href="http://www.google.com" rel="facebox">CLICK ME I DONT   WORK</a>'); 
    reinit(); 
    } 

은 가끔은 그냥 문제에 눈을 또 한 쌍의 필요 .

+0

html로 작동하지만로드하려고하면 더 이상 작동하지 않습니다. – NVG

+0

html jquery의 함수와 같이로드하고 jquery의 'load'함수와 같이로드하십시오. – NVG

+0

페이지에서 새 html을 넣는 함수에서 part 뒤에있는 reinit() 함수 호출을 이동해야합니다. 그래서 updatec() 함수에서 $ ("# content"). html ('...') 부분 뒤에. – Adrian