这可能不是那么困难,因为否则我确定我会在某个地方找到答案......
我想做什么我打开一个fancybox(jquery插件),用ajax-content加载它,当我点击它里面的链接时,它用新的ajaxcontent加载它,就像点击框架内的链接一样。
有什么想法吗?
答案 0 :(得分:1)
你可以
在fancybox中使用iframe(最快和最简单,不会使用ajax,但会按照您的意愿执行并更容易进行SEO),或者
在你的fancybox中加一个div,用ajax和html()
填充它,然后将包含的a
元素'click
事件绑定到一个函数,它将再次执行相同的操作。
请注意,使用第二种方法,您不会自动使浏览器的后退按钮工作,SEO更难,等等。
答案 1 :(得分:1)
我是这样做的:
$('#fancybox-content a').live('hover', function(){
$(this).fancybox();
});
这将是fancybox-animate,包括调整大小,在fancybox中的任何链接。
答案 2 :(得分:1)
我没有编码,但似乎我在努力了5个小时之后才开始工作
如果您使用fancybox打开一个新的HTML / PHP文件,这确实有用(ie9 / ff / safari / chrome)
我创建了4个页面 - main.php / page1.php / page2.php / page3.php
main.php>> 使用fancybox代码(根据需要设置样式)
$(document).ready(function() {
$("a.openModal").fancybox({
'autoDimensions' : false,
'width' : 750,
'height' : 500,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'titleShow' : false,
'hideOnContentClick' : false,
});
});
{a href =“page1.php”class =“openModal”}页面名称{/ a}
用户点击我在main.php上指定的fancybox链接(我使用了类,因为我在一个页面上有很多fancybox链接)
所有页面都有相互链接(但不包括main.php)
page1.php& page2.php& page3.php - 必须使用您在主页面中使用的相同代码(否则您将调整大小和转换问题)
page1.php中
$(document).ready(function() {
$("a.openModal").fancybox({
'autoDimensions' : false,
'width' : 750,
'height' : 500,
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'titleShow' : false,
'hideOnContentClick' : false,
});
});
完美适合我 - 通过fancybox Modal链接到一个页面,然后链接到Modal中的页面,指向Modal中的另一个页面的链接(我已经输入了6个链接)。
必须是“更容易”的方式(正确的词语是“正确的”) - 但这种解决方法是我的解决方案
我没有使用表单进行测试 - 我无法让“javascript:history.go(-1)”上班 -
所以只有前进(帮助那将是真棒)
答案 3 :(得分:0)
使用onComplete
(1.3或更低)或afterShow
(2.0+)回调。
只需在页面上运行相同的代码即可激活fancybox。
我喜欢让它发挥作用,因此您可以轻松地重新调用它。
function initFancybox() {
$("a.openModal").fancybox({options..., onComplete: initFancybox });
}
如果您只想在新打开的fancybox中激活fancybox链接,也可以手动执行并使用选择器。这可能会稍微有点效率。
function initFancybox(selector) {
if (selector == null) { selector = ""; }
$(selector+" a.openModal").fancybox({options...,
onComplete: function() { initFancybox("#fancybox-content"); }
});
}
答案 4 :(得分:0)
是的,你需要的是一个框架(iframe)。 Fancybox必须知道其加载的内容应该像框架一样对待 所以你可能想要使用
$('#contentclassorid').fancybox({
type: "iframe"
});