我使用jQuery fancybox插件在用户单击链接时显示带有关于记录的上下文信息的iframe。jQuery插件在ajax完全回调期间不可用
在ajax成功回调运行时找不到.fancybox()插件。类似以下内容:
$(function() {
Widgets = {
show_dialog: function(width, height) {
$('.fancybox').fancybox({ fancybox settings here});
}
}
});
我可以告诉大家的fancybox加载和可用时,从它之后检查断点定义上述窗口小部件对象。我还可以通过在作用域$就像一个匿名函数包裹show_dialog功能修复这个函数的调用如下:
$(function() {
Widgets = {
show_dialog: function($) { return function(width, height) {
$('.fancybox').fancybox({ fancybox settings here});
}; }($)
}
});
更多的背景...我使用的postMessage jQuery插件从发送邮件子框架的父框架,如果重要的(我不认为它应该)
任何人都可以解释发生了什么事?它几乎觉得$是在稍后执行页面时重新分配的,但我不会在任何地方加载它。
编辑:更新的fancybox的范围界定为$(“的fancybox”)的fancybox(
iframe和父页面是否位于同一个域? – 2011-06-14 13:41:57
不是,不同的域,因此使用http:///benalman.com/projects/jquery-postmessage-plugin/发送消息给父母帧。消息得到很好。 – 2011-06-14 13:43:52
稍微更多detal ...调用此函数的父函数具有$ .fancybox定义。这个函数通过window ['this_funtion']调用。apply(e.source,args)。 我试着将e.source更改为null,但没有影响错误。 – 2011-06-24 18:49:17