Facebox не работает с элементами, загруженными в определенный div с помощью jQuery - PullRequest
0 голосов
/ 19 декабря 2011

просто хочу показать, что я искал по всем stackoverflow и google, но не смог решить мою проблему с помощью помощи, которую нашел.

У меня есть недельный календарь, в котором дни разделены наэлементы div.Каждый div имеет идентификатор dmY.Я использую смесь 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 - я хочу добиться этого, нажимая накнопка удаления, всплывающее окно.

Ответы [ 3 ]

1 голос
/ 02 февраля 2012

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

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

$(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();
    });
});
0 голосов
/ 21 декабря 2011

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

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

 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>";
0 голосов
/ 19 декабря 2011

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

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

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

...