2009-10-20 151 views
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> 

当一个类别被选择它删除在div内的内容和通过其它内容例如替换它完全一样的内容。 (所以rel =“lightbox”仍然存在)。

如果有人可以帮助我走出这一个我喜欢它(我使用jQuery的BTW)。

响应亚历克斯·塞克斯顿后编辑:

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

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

}

但现在,当我选择一个类别,并选择缩略图加载正确的收藏夹,但同时也被装入一个我想与上述空收藏夹你可以看到:

enter image description here

任何人都知道是什么引起的?

回答

2

如果绑定一个普通的事件处理程序的链接:

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

然后就是绑定后添加任何新的内容不会被捕获。

您可以重新运行绑定,当您更改了的内容,或者更简单地使用jQuery的事件代表团附加处理程序:

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

好的,谢谢这有一点帮助,它知道每次触发一个事件(也是动态添加的元素),但它现在加载2倍的灯箱。任何想法如何解决这个问题? – Ayrton 2009-10-21 10:24:39

+0

听起来像你的点击事件绑定莫名其妙的两倍。确保你不使用正常的点击绑定以及活动绑定。 – 2009-10-21 10:32:03

0

你可以叫很多jQuery的灯箱与$ .lightboxName(),例如

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

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