2010-08-06 51 views
1

我有一個功能,動態創建照片庫的鏈接。當點擊縮略圖時,該功能還可以生成更大的圖像作爲div的背景圖像。我想要做的是有第三個事件,如果用戶單擊div中的放大圖像,jQuery Fancybox會加載div中顯示的更大版本的圖像。問題是,我正在使用的錨標記的鏈接是動態創建的,我知道Fancybox在DOM準備好時解析HTML ...不幸的是,我的函數通過在完整大小的圖像上附加錨標記來更改DOM 。我需要的幫助是使用Fancybox的選項來指定插件的href屬性。對不起,這是很囉嗦...這是代碼。幫助jQuery的.live()方法

的jQuery:

function gallery(picid, picnum){ 
var ext = 'jpg'; 
var fullSize = 'imgs/'+picid+'_full.'+ext; 
$('#photolarge').css("background", 'url(imgs/'+picid+'_large.'+ext+') no-repeat'); 
$('#photolarge a').attr(
    { href: fullSize 
     //rel: 'lightbox', 
    } 
    ); 

$("#lightboxlink").click(function(){ 
    $('#lightboxlink').fancybox({ 
     'autoDimensions' : false, 
     'width' : 'auto', 
     'height' : 'auto', 
     'href' : fullSize 
     }); 


    }); 

return false; 
} 

HTML摘錄

<div id="photolarge"> 
    <a id="lightboxlink" href="#"></a> 
</div> 
     <div id="phototable"> 
      <ul id="photorow1"> 
       <li><a onclick="gallery('bigsun',1)"><img id="sun" src="imgs/bigsun.jpg" /></a></li> 
      </ul> 
     </div> 

CSS:

#photolarge { 
width: 590px; 
height: 400px; 
margin-left: 7px; 
border: 2px solid; 
background: none;} 

#phototable { 
width: 590px; 
height: 300px; 
border: 2px solid; 
margin: 10px 0 0 7px;} 

#phototable img { 
cursor: pointer;} 

#phototable ul { 
list-style: none; 
display: inline;} 

#phototable li { 
padding-left: 10px;} 

#lightboxlink { 
display: block; 
height: 100%; 
width: 100%;} 

任何幫助將不勝感激!

+0

嗨基督徒,U可以發佈一個鏈接到網頁烏爾? – 2010-08-06 14:34:51

+0

@Avinash該頁面還沒有播出,我現在正在網絡主機之間。有什麼我可以做的嗎? – 2010-08-06 14:49:43

+0

是否可以在http://jsbin.com上發佈代碼| http://jsfiddle.com? – 2010-08-06 14:57:39

回答

0

試試這個,看看它是否工作,這僅僅是看中箱位,雖然,你的代碼的其餘部分似乎罰款

$("#lightboxlink").live('click', function(){ 

    $.fancybox({ 
     'autoDimensions' : false, 
     'width'   : 'auto', 
     'height'   : 'auto', 
     'href'   : $(this).attr('href') 
    }); 
    return false; 
});