如何确定哪个Prettyphoto灯箱目前正在打开?

时间:2012-08-13 23:57:15

标签: javascript lightbox prettyphoto

在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元素,而且,如果我使用灯箱库中的下一个按钮,它不会将该类放在“active_lightbox”上。
那么,如何判断当前使用jquery / js打开哪个灯箱?

1 个答案:

答案 0 :(得分: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
    },
    ...
  });

您可以添加更多标记,但通过使用data-标记可以更精确。

<强>资源