2010-07-20 141 views
0

我只是重新發布,使之更清楚&,因爲我上載的問題的一個樣本...阿賈克斯問題(jQuery的)

簡單...

這個奇特框插件的偉大工程上此頁http://www.websitesbyshane.co.uk/chris/portfolio.php

但是如果投資組合#content通過ajax被拉入index.php中,則不會。您可以通過訪問www.websitesbyshane.co.uk/chris網頁並點擊'產品組合'來查看您的個人信息。

感謝您的時間。

Shane

+3

你可以在這裏描述一下這個問題的代碼嗎? – David 2010-07-20 21:29:11

+0

嗨。不確定你想要看哪部分代碼?我的問題是,我想在新元素上使用javascript,通過ajax將其加載到div中。 – shane 2010-07-20 21:42:03

+0

我一直在想如果.live()是我需要的... – shane 2010-07-20 21:42:34

回答

0

它看起來像你的ajax調用加載整個portfolio.php頁面。如果用戶沒有啓用Javascript,允許用戶單擊該鏈接並轉到投資組合頁面是件好事,但通過ajax調用加載整個頁面肯定會導致一些問題。

您通過ajax加載的portfolio.php頁面包含$(document).ready以啓用lightbox,但此代碼將永遠不會執行,因爲主頁面已經加載。你的花哨盒插件的代碼應該在主網頁上。然後,您可以在將投資組合頁面/內容加載到您的div後運行該代碼來綁定花哨框。

編輯:增加了更多的細節:

您現在有

$('#content').load(toLoad) 

在js.js文件。根據jQuery的API文檔(http://api.jquery.com/load/),你可以傳遞一個回調到它的時候,它已經完成運行:

$('#content').load(toLoad, function() { 
    alert('Load was performed.'); 
}); 

你可以你的想象框代碼簡單地加載到這個回調函數在js.js文件中像這樣:

$('#content').load(toLoad, function() { 
    $("a#example6").fancybox({ 
     'titlePosition' : 'over' 
    }); 

    $("a[rel=example_group]").fancybox({ 
     'transitionIn' : 'none', 
     'transitionOut' : 'none', 
     'titlePosition' : 'over', 
     'titleFormat' : function(title, currentArray, currentIndex, currentOpts) { 
     return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + '/' + currentArray.length + (title.length ? ' &nbsp; ' + title : '') + '</span>'; 
     } 
    }); 
}); 

問題是即使您不打電話給投資組合頁面,它也會被調用。它不會抱怨,但可以通過將它包裝在「if」語句中來解決。

+0

謝謝。該解決方案聽起來很完美我已經嘗試向你的主站點添加相關的javascript,但是我不知道如何實現.bind()函數。我是否需要將新內容綁定到現有的JavaScript?這聽起來合乎邏輯,但我該怎麼做呢?感謝您的時間:) – shane 2010-07-21 05:38:09

+0

@shane你的代碼有點雜亂 - 可以理解,因爲你正在嘗試很多事情來讓它工作。我希望你能夠使用我在這裏寫的東西。調用.fancybox()方法將綁定到頁面上的任何新內容(如果在內容加載後調用該內容)。你不需要使用。生活 – 2010-07-21 12:43:56

+0

你好。謝謝您的幫助。我理解這裏的邏輯,但... 使用回調功能,我能夠操縱除了新添加的內容的DOM的任何部分。嚴重的頭部劃傷在這裏進行。 – shane 2010-07-21 18:08:04

0

你使用螢火蟲嗎?這可以幫助你調試你的php/ajax代碼。只要不要忘記 以便在調試XMLHttpRequests時啓用javascript調試並監視ajax響應選項卡。

+0

嗨,我所有的javascripts都正常運行。我只是不確定如何在剛添加DOM的新元素上使用腳本。 – shane 2010-07-20 21:54:27