Facebox не работает, когда контент добавляется через jQuery? - PullRequest
0 голосов
/ 26 июня 2011

У меня есть сайт, который загружает контент через jQuery. При загрузке все мои javascript и css файлы, необходимые для facebox. Это я поставил ссылку на начальную страницу, она отлично работает. Однако при изменении «innerHTML» одного элемента те же ссылки не функционируют.

И я даже попытался поместить файлы javascript и css во внутренний HTML, и он все еще не работает! Загружается как новая страница.

Пожалуйста, помогите! Спасибо

Редактировать 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 Ответ

3 голосов
/ 26 июня 2011

Не работает, потому что к этой ссылке не прикреплен слушатель.Вы можете подтвердить, что это ваша проблема, добавив этот код после вызова ajax (в случае успеха, после вставки ссылки в документ).

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