2

我正在开发一个小作品集,我可以在其中选择一个类别,当我单击它时,将显示该类别的内容(缩略图)(这是通过数组)。

例如

photography[0] = <a href="..." rel="lightbox" /><img ...  /></a>
photography[1] = <a href="..." rel="lightbox" /><img ...  /></a>

起初,该站点显示所有类别的内容,当我单击缩略图时,它会激活灯箱,但是如果我选择一个类别,然后按剩余的缩略图之一,则只会导致图像,并且不会使用灯箱打开图像。

这是页面初始加载时缩略图的样子:

<div><a title="..." rel="lightbox" href="http://...yellow-brick-road.jpg" class="thumbnaila"> <img class="thumbnail " alt="" src="http://...yellow-brick-road.jpg" /></a>

When a category is selected it removes the content within the div and replaces it by other content eg exactly the same content. (所以 rel="lightbox" 仍然存在)。

如果有人能帮我解决这个问题,我会喜欢的(顺便说一句,我正在使用 jquery)。

回复亚历克斯·塞克斯顿后编辑:

$(".thumbnaila").live("mouseover", function(){
    activateLightbox($(this));});

function activateLightbox(dit) {
    $('a[rel="lightbox"]').lightBox({
            overlayBgColor: '#000',
            overlayOpacity: 0.65,
            containerResizeSpeed: 350
    });

}

但是现在当我选择一个类别并选择一个缩略图时,它会加载正确的灯箱,但也会在我想要的灯箱上方加载一个空灯箱,如您所见:

在此处输入图像描述

有谁知道这是什么原因造成的?

4

2 回答 2

1

如果您将链接与常规事件处理程序绑定:

$('a[rel=lightbox]').click(function(e){ ... });

那么在绑定之后添加的任何新内容都不会被捕获。

您可以在更改内容时重新运行绑定,或者更简单地使用 jQuery 的事件委托来附加处理程序:

$('a[rel=lightbox]').live('click', function(e){ ... });
于 2009-10-20T22:10:18.037 回答
0

您可以使用 $.lightboxName() 调用许多 jQuery 灯箱,例如

$('a[rel=lightbox]').live('click', function(e){
  e.preventDefault;
  $.fancybox({ href : $(this).attr('href') });
  // OR $.colorbox({ href : $(this).attr('href') });
});

请注意,jQuery 现在建议使用 .on() 而不是 .live()。

于 2011-12-08T22:28:40.427 回答