Nic*_*ick 7 fancybox unbind destroy fancybox-2
我有一个奇怪的问题,我有代码通过ajax拉取内容,然后将Fancybox(2)绑定到某些元素.问题是,当我"刷新"这个页面时,我会调用相同的函数来再次拉动和绑定Fancybox.
直到我改为Fancybox 2之前一直在努力的正常方法是取消绑定元素并重新绑定它们.然而,这似乎不适用于FB2.
我尝试过以下方法:
$('.tool_button').unbind('click.fb');
$('.tool_button').unbind('click');
$('.tool_button').unbind();
$('.tool_button').off('click.fb');
$('.tool_button').off('click');
$('.tool_button').off();
Run Code Online (Sandbox Code Playgroud)
我确实注意到源文件中的以下内容可能有用(起始行652):
// Unbind the keyboard / clicking actions
unbindEvents: function () {
if (F.wrap && isQuery(F.wrap)) {
F.wrap.unbind('.fb');
}
D.unbind('.fb');
W.unbind('.fb');
}
Run Code Online (Sandbox Code Playgroud)
如果有人可以在这里提供帮助,我将不胜感激.
提前致谢.缺口
OAC*_*gns 13
如果包含该属性,live:false则可以使用从元素中删除处理程序.off()
在深入挖掘源代码之后,我还发现特定事件是click.fb-start,如果你想专门针对它.
例如:
Run Code Online (Sandbox Code Playgroud)$(".fancybox").attr('rel', 'gallery').fancybox({live: false}); //remove click handler $('.fancybox').off("click.fb-start");
仅供参考在文档中,它说如下live:
live:如果设置为true,fancyBox使用"live"来协助点击事件.设置为"false",如果您只需要应用于当前集合,例如,如果使用类似 - $("#page").childrenren().filter('a').eq(0).fancybox() ;
这是一个jsFiddle演示
http://jsfiddle.net/DigitalBiscuits/DBvt7/211/
| 归档时间: |
|
| 查看次数: |
9103 次 |
| 最近记录: |