2010-08-05 108 views
-1

我有一個使用ajax jquery和facebox的網站。 演示在這裏:http://temp.nevergone.eu/facebox.php 在div「#content」裏面有一些指向其他頁面的鏈接,使用facebox可以正常打開。Ajax和facebox問題

如果我使用ajax jquery重新加載該div的內容,那麼鏈接將不會再使用facebox效果彈出。

我試着創建一個函數,當我調用改變div #content內容但沒有運氣的函數時,我會調用它。我知道我必須重新加載/重新加載面板到DOM每次我加載新的頁面,其中包含rel =「lightbox」,但我不知道如何。我把它叫做 它工作,如果我使用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腳本。

什麼,你現在已經是這樣的:

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>'); 
    } 

您需要將您重新發起功能的HTML插入如下所示:

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

有時候,你只需要另一雙眼睛上的問題。

+0

它適用於html,但如果我嘗試加載,它不會再工作。 – NVG 2010-08-05 07:56:26

+0

在html中的html jquery的功能和加載在jquery的「加載」功能 – NVG 2010-08-05 07:56:49

+0

您需要將reinit()函數調用移動到函數中將新HTML放在頁面上的部分之後。所以在updatec()函數中的$(「#content」)。html('...')部分之後。 – Adrian 2010-08-05 15:56:38