2012-08-16 58 views
0

我有一個div稱爲toprightbox其HTML我使用jQuery的改變上點擊:如何讓jQuery .html()與jquery prettyPhoto lightbox交互?

$(".icon").click(function(){ 
$("#toprightbox").html('<a rel="prettyPhoto[artwork]" href="large.jpg"> 
<img src="thumbnail.jpg" width="100" height="100" /></a>'); 
} 

以上通過jQuery HTML中的變化使得在prettyPhoto燈箱呼叫在prettyPhoto燈箱打開一個較大的圖像.. 。

我想知道爲什麼這是行不通的。鏈接()和html生成,但顯然在jQuery代碼中做jQuery調用似乎是不可能的。漂亮的照片燈箱不起作用...請幫助!

回答

1

它的工作原理。問題在於你調用代碼的順序。

  1. 你的頁面被加載,所有的HTML文件都被渲染。
  2. 您使用的插件在頁面的$(document).ready(function() { .... });部分中調用(我希望!)。如果您在那裏調用您的lightbox插件(例如,在具有某個類的項目上),它將應用於當前落在該選擇器範圍內的所有項目
  3. 之後,在某個時間點,用戶點擊一個「.icon」元素。因此,新的鏈接被添加。您的插件不起作用,因爲它從未應用於該新創建的鏈接。

所以你必須在新步驟4

+0

再次撥打您的插件....你是絕對正確的!謝謝! – jaguarhaus 2012-08-16 14:53:32

+0

也可以查看LiveQuery插件(http://docs.jquery.com/Plugins/livequery)。它基本上爲你調用第4步。 – Flater 2012-08-17 08:15:05