2015-05-13 51 views
0

我试图重新初始化一个FancyBox实例,我已经从页面中删除了一些项目,但找不到任何可用的方法;或者在操纵DOM时autoReinitialise的任何选项。我错过了什么吗?Fancybox实例是否需要重新初始化方法?

问题是,当我现在用rel =“group”属性实例化的项目上点击箭头时,仍然会看到“已删除”的内容。

我初始化的fancybox的jQuery的DOM已准备就绪,像这样:

$(".fancybox").fancybox(); 

的HTML元素(一个或多个)是这样的:

<a class="fancybox" rel="group" href="http://localhost/myimages/image-1.jpg"></a> 
<a class="fancybox" rel="group" href="http://localhost/myimages/image-2.jpg"></a> 

我使用的fancybox版本2.任何建议或意见?

+0

从理论上讲,删除内容后不需要做任何事情,因为fancybox v2.x支持用于动态添加/删除内容的“live”方法,但它取决于您通过“删除”内容所了解的内容,以及如何你这样做http://jsfiddle.net/9g1onkvk/ – JFK

+0

@JFK,我实际上删除并添加了新的项目与AJAX。在我看来,使用rel =“group”属性并没有更新我创建的环境中项目的“索引”。添加/删除多个项目后,点击导航按钮时,它不会按时间顺序排列“页面”低谷。然而,使用rel =“gallery”属性的JSFiddle确实做了我所需要的。谢谢。 – Theunis

回答

1

Fancybox 2不包含任何销毁或更新方法。

因此,您需要再次启动Fancybox方法。但是请注意,在重新初始化Fancybox之前,您必须先使用.unbind方法并删除元素上的所有事件。请参阅 - How to destroy Fancybox?关于如何模仿销毁方法。

简而言之,更新您的DOM,解除所有方法上的事件,然后再次调用Fancybox方法重新绑定。

+2

从理论上讲,删除内容后不需要做任何事情,因为fancybox v2.x支持动态添加/删除内容的“live”方法,所以再次激发fancybox方法是多余的。http://jsfiddle.net/9g1onkvk/ – JFK

+0

@JFK我应该首先在小提琴中检验我的理论。感谢分享,今天我学到了一些新东西:) – James