通过jQuery添加内容时,Facebox不起作用?

时间:2011-06-26 02:50:51

标签: javascript jquery css facebox

我有一个通过jQuery加载内容的网站。加载facebox所需的所有javascript和css文件时。我在初始页面上放了一个链接,它运行正常。但是,当更改一个元素的“innerHTML”时,相同的链接不起作用。

我甚至试过把javascript和amp; innerHTML中的css文件仍然不起作用!它会加载为新页面。

请帮忙! 感谢

修改1:

的index.php

<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="http://justtwobros.com/actions.js"></script>
<link href="src/facebox.css" media="screen" rel="stylesheet" type="text/css" />
<script src="lib/jquery.js" type="text/javascript"></script>
<script src="src/facebox.js" type="text/javascript"></script>

<script type="text/javascript">
 jQuery(document).ready(function($) {
   $('a[rel*=facebox]').facebox({
     loadingImage : 'src/loading.gif',
     closeImage   : 'src/closelabel.png'
   })
 })
</script>

<a href="file.html" rel="facebox">text</a> (this link is the one that works)

<script>
    showAllWorkOnLoad();
</script>

actions.js

function showAllWorkOnLoad() {
var thePostData = "filter=allwork";
$.ajax({
    type: "POST",
    url: "http://justtwobros.com/get_work.php",
    data: thePostData,
    success: function(theRetrievedData) {
        document.getElementById('content').innerHTML = theRetrievedData;
        $("#content").fadeIn(20);
        focusButtonAllWork();

        var count = 0;
        $("#content").find('.work_thumbnail_wrapper').each(function() {
            count++;
            var timeWait = (count * 100) + 500;
            var theId = $(this).attr('id');  
            var theIdDone = "#" + theId;
            setTimeout(function(){$(theIdDone).fadeIn(300);},timeWait);
        }); 

    }
});
}

get_work.php

<a href="file.html" rel="facebox">text</a> (this link that doesn't work)

1 个答案:

答案 0 :(得分:3)

它不起作用,因为该链接没有附加侦听器。您可以通过在ajax调用后添加此代码来确认这是您的问题(成功后,将链接插入到文档中)。

   $('a[rel*=facebox]').facebox({
     loadingImage : 'src/loading.gif',
     closeImage   : 'src/closelabel.png'
   })