2012-08-13 46 views
0

在prettyPhoto changePictureCallback函數中,我想知道哪個燈箱當前打開。目前我正在這樣做:如何弄清楚哪張照片是當前打開的?

$("a[rel^='prettyPhoto']").prettyPhoto({ 
    deeplinking : false, 
    counter_separator_label : ' of ', 
    gallery_markup : '', 
    social_tools : '', 
    slideshow : false, 
    changepicturecallback: function(){ 
    //do stuff 
    id_to_find = $(".active_lightbox").attr('href'); 
    }, 
    opacity : 0.29 
}).click(function(){ 
    $(this).addClass('active_lightbox'); 
}); 

這樣,當錨點被點擊時,將獲取active_lightbox放到它上面。 但是,這並不很好。我最終可能擁有多個active_lightbox元素,並且如果我使用lightbox庫中的下一個按鈕,它不會將該類放在「active_lightbox」上。
那麼,我怎麼知道哪個燈箱目前用jquery/js打開?

回答

1

一對夫婦選擇這裏,但跳出給我一個:

它看起來像你想一起工作的幾個<a rel="prettyPhoto##">其中##是畫廊或照片編號?如果是這樣的話,我建議是這樣的:

$("a[rel^='prettyPhoto']").each(function(index, elm) 
    var $elm = $(elm); 
    // an arbitrary ID based on its order in the DOM 
    var photo_id = index; 
    // returns the ## from rel="prettyPhoto##" 
    var gallery_id = $(elm).attr('rel').replace("prettyPhoto", ""); 
    $elm.prettyPhoto({ 
    ... 
    changepicturecallback: function(){ 
     // do stuff 
     // photo_id 
     // gallery_id 
     // elm and $elm 
    }, 
    ... 
    }); 

OR你可以添加多一點的標記,但可以通過利用data-標籤更精確。

資源

+0

//description in here. 2012-08-14 00:52:03

+0

這是怎麼回事我的錨的樣子。重要的是,所有這些都需要具有相同的rel屬性,並將相同的圖庫名稱放在同一個圖庫中。你能否提供一個能與你的策略一起工作的錨點的例子?此外,索引究竟是從哪裏來的?我明白它需要迭代,但我沒有看到它是如何迭代的。順便說一句,wyMILF ...是什麼在燈箱中顯示的唯一ID – 2012-08-14 00:53:00

+1

沒關係,我瞥了一眼jQuery.each文檔,它現在是不言自明的。非常感謝Nick,我沒有想過要做這樣的事情! – 2012-08-14 01:00:37