我有一个奇怪的问题,我有通过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();
我确实注意到这可能是使用的源文件中的下面的(起始线652):
// Unbind the keyboard / clicking actions
unbindEvents: function () {
if (F.wrap && isQuery(F.wrap)) {
F.wrap.unbind('.fb');
}
D.unbind('.fb');
W.unbind('.fb');
}
如果有人能够帮助这将是非常赞赏。
提前致谢。 缺口
如果包括属性live:false
,那么你就可以使用您的元素删除处理程序.off()
通过源代码挖后,我还发现,特殊事件是click.fb-start
,如果你想专门针对它。
例如:
$(".fancybox").attr('rel', 'gallery').fancybox({live: false}); //remove click handler $('.fancybox').off("click.fb-start");
FYI在文档它说以下有关live
:
住:如果设置为true,使用的fancybox“活”到assing click事件。 设置为 “假”,如果您需要仅适用于当前的集合,例如,如果使用类似 - $( “#page”)。孩子()过滤器( 'A')EQ(0).fancybox()。 ;
的jsfiddle
下面是一个示范的jsfiddle
http://jsfiddle.net/DigitalBiscuits/DBvt7/211/
我知道这是一个古老的线程,但只是想确认OAC外观设计是绝对正确的:解除绑定.fancybox
链接只有在工作live
参数设置为false
。
不过, 您也可以在DOM级别摧毁的fancybox,不管的live
参数,这样做:
$(document).unbind("click.fb-start");
要么
$(document).off("click.fb-start");
的jsfiddle
看看这个的jsfiddle以供参考。
您可以使用此代码来摧毁链接的fancybox功能:
jQuery('a').unbind('click.fb').removeData('fancybox');
感谢您的答复,我没有测试上面,我用不同的方法来解决这个问题。
我所做的是不是用我创造了在那里我需要的fancybox职能及其因此不绑定事件每种情况下手动叫的fancybox默认的fancybox功能。
这是不是最好的方法和上面可能会更好,但我会去在新的一年测试此:)
再次感谢。