这个问题一直困扰着我几天,并且真的可以用你的输入......
我正在使用http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/ajaxtabs_suppliment3.htm为我的网站创建ajax标签,并使用http://defunkt.io/facebox/创建模态窗口。但是当我尝试通过ajax选项卡加载的facebox链接时,它没有将内容加载到facebox中。但它适用于ajax选项卡之外的任何链接(即,在网站加载时直接加载PHP)。
有什么想法吗?请在此方面获得帮助以最终确定我的网站...
提前谢谢大家
乔治
下面是我的facebox jquery代码:
enter code here
<script>
jQuery(document).ready(function($) {
$('.embed-thumbnail').click(function(event) {
event.preventDefault();
$.facebox($(this).parent().find('.embed-content')[0].innerHTML)
});
$.facebox.settings.loadingImage = '../static/img/loading.gif'
$.facebox.settings.closeImage = '../static/img/closelabel.png'
$.facebox.settings.opacity = 1
$.facebox.settings.faceboxHtml = '\
<div id="facebox" style="display:none;"> \
<div class="popup"> \
<div class="content"> \
</div> \
<a href="#" class="close"><img src="../static/img/closelabel.png" title="close" class="close_image" /></a> \
</div> \
</div>'
});
</script>
Ajaxtab代码:
<script type="text/javascript">
var countries=new ddajaxtabs("popularPosts", "populardivcontainer")
countries.setpersist(true)
countries.setselectedClassTarget("linkparent") //"link" or "linkparent"
countries.init()
</script>
答案 0 :(得分:0)
好的,看起来你需要在Ajax加载后重新绑定Facebox。
使用ajax选项卡,请使用:
instance.onajaxpageload=function(pageurl){
//custom code here
}
和
将其附加到onLoad
虽然在任何锚标签上调用facebox()都可以解决问题 更容易给你的Faceboxy链接一个rel =“facebox”并点击它们 的onLoad。
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox()
})
所以你应该得到类似的东西:
instance.onajaxpageload=function(pageurl){
$('a[rel*=facebox]').facebox()
}
显然用您的标签对象替换“实例” - 这应该将新加载的Facebox元素重新绑定到代码。
文档没有说明的一件事是.onajaxpageload
方法是否已经完成加载Ajax内容,因为这是你想要的(不是在期间或之前)。
编辑:
要尝试的新脚本。
<script type="text/javascript">
var countries=new ddajaxtabs("popularPosts", "populardivcontainer")
countries.setpersist(true)
countries.setselectedClassTarget("linkparent") //"link" or "linkparent"
countries.init()
$(document).ready(function() {
loadFacebox();
countries.onajaxload=function(pageurl) {
loadFacebox();
};
});
function loadFacebox() {
$('.embed-thumbnail').click(function(event) {
event.preventDefault();
$.facebox($(this).parent().find('.embed-content')[0].innerHTML)
});
$.facebox.settings.loadingImage = '../static/img/loading.gif'
$.facebox.settings.closeImage = '../static/img/closelabel.png'
$.facebox.settings.opacity = 1
$.facebox.settings.faceboxHtml = '\
<div id="facebox" style="display:none;"> \
<div class="popup"> \
<div class="content"> \
</div> \
<a href="#" class="close"><img src="../static/img/closelabel.png" title="close" class="close_image" /></a> \
</div> \
</div>'
};
</script>
或类似的东西......您可能需要一种更狡猾的方式来定位您的facebox元素 - 但是每次加载选项卡后都应该重新绑定相同的代码。