jQuery facebox无法使用Dynamic Drive Ajaxtabs

时间:2012-03-21 08:24:48

标签: jquery ajax tabs facebox

这个问题一直困扰着我几天,并且真的可以用你的输入......

我正在使用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>

1 个答案:

答案 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元素 - 但是每次加载选项卡后都应该重新绑定相同的代码。