2011-12-19 6 views
0

просто хочу поместить его там, что я искал во всех stackoverflow и google, но не смог решить мою проблему с помощью найденной мной помощи.Facebox не работает над элементами, загружаемыми в конкретный div с помощью jQuery

У меня есть еженедельный календарь, дни которого разделены на элементы div. Каждый div имеет идентификатор d-m-Y. Я использую сочетание php и jQuery для загрузки событий в дни выбранной недели.

Ниже приведена смесь jQuery и PHP, которая делает именно это (загружает события в определенные дни недели).

echo "<script type=\"text/javascript\"> 
    jQuery(document).ready(function($) { 
     $('a[rel*=facebox]').facebox({ 
      loadingImage : '/scripts/facebox-v1.3/loading.gif', 
      closeImage : '/scripts/facebox-v1.3/closelabel.png' 
     }); 
     $(document).bind('beforeReveal.facebox', function() { 
     $(\"#facebox .content\").empty(); 
    }); 
    "; 

    for($day=1; $day<=5; $day++) { 
     echo "$('#".date('d-m-Y', strtotime($year."W".$week.$day))."').append($('<div />').load('/cal/load #".date('d-m-Y', strtotime($year."W".$week.$day))."'));\n"; 
    } 
    echo "}); 
    </script>"; 

Ниже приведены данные, которые загружаются в конкретный div.

echo "<div id='".date('d-m-Y', strtotime($event['timeStart']))."' style='width: 100%; height: ".$eventLong."px; top: ".$eventPosition."px; left: 0%; position: absolute; z-index: 1; background: #C30;'><a href='#' rel='facebox'>Delete</a></div>"; 

Моя проблема заключается в том, что я не могу получить facebox работать - я хочу, чтобы добиться того, что при нажатии на кнопку удаления, facebox выскакивает.

ответ

0

У вас ошибка JQuery?

Возможно, у вас есть конфликт JQuery? Если вы пишете простое предупреждение ($ ('body'). Html()); это сработает?

В этом случае вы должны убедиться, что вы загружая scrips хорошо ...

+0

Спасибо за ваш ответ. Нет, ошибок нет. И скрипты загружаются отлично, поскольку facebox работает с элементами, находящимися за пределами «дневного» div. Он просто не работает над элементами, которые загружаются в день div (d-m-Y). Надеюсь, что я не усложняю многое. – roks0n

0

После игры с кодом, я получил его на работу - своего рода. Facebox теперь работает над элементами append.load. Но только после того, как я сделаю CLICK где-нибудь на сайте. Любые идеи о том, как заставить его работать над готовкой?

«Модифицированный код»:

echo "<script type=\"text/javascript\"> 
    $(document).ready(function() { 
     $('a[rel*=facebox]').facebox({ 
      loadingImage : '/scripts/facebox-v1.3/loading.gif', 
      closeImage : '/scripts/facebox-v1.3/closelabel.png' 
     }); 
     $(document).bind('click', function() { 
      $('a[rel*=facebox]').facebox({ 
      loadingImage : '/scripts/facebox-v1.3/loading.gif', 
      closeImage : '/scripts/facebox-v1.3/closelabel.png' 
     }); 
     $(document).bind('beforeReveal.facebox', function() { 
      $(\"#facebox .content\").empty(); 
     }); 
    }); 
    "; 

    for($day=1; $day<=5; $day++) { 
     echo "$('#".date('d-m-Y', strtotime($year."W".$week.$day))."').append($('<div />').load('/cal/load #".date('d-m-Y', strtotime($year."W".$week.$day))."'));\n"; 
    } 
    echo "}); 
    </script>"; 
1

ОК я столкнулся с другой проблемой, и я думаю, что я установил код ... это, как это должно быть в настоящее время.

Ниже версия JQuery без PHP (у меня есть переменные $ даты для всех дат в коде):

$(document).ready(function() { 
    $('#30-01-2012').append($('<div>').load('/cal/load/room/del/date/30-01-2012 #30-01-2012' ,function() { 
     $('#delete a[rel*=facebox]').facebox(); 
    }); 
});