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

4

1 回答 1

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-标签更精确。

资源

于 2012-08-14T00:37:44.477 回答