Загрузка нового контента в Fancybox на событие Fancybox onClosed - PullRequest
3 голосов
/ 18 октября 2011

У меня проблема с окнами Fancybox. Я использую fancybox для отображения содержимого скрытого div на моей странице («fancybox» .popup ниже). В этом контенте есть ссылка на новый контент fancybox с именем #exemple. Когда я нажимаю на ссылку в первом fancybox, он загружает второй контент fancybox (iframe - это отлично работает). Но я бы хотел вернуться к первому причудливому ящику, когда пользователь нажмет кнопку закрытия второго причудливого ящика.

Я пытался с событием "onClosed", но оно не работает ...

Есть ли способ сделать это?

Заранее благодарю за помощь!

Вот код, который я использую:

$("#exemple").fancybox({
    'width'             : '100%',
    'height'            : '100%',
    'titleShow'         : true,
    'titlePosition'     : 'over',
    'titleFormat'       : formatTitle,
    'autoScale'         : false,
    'centerOnScroll'    : true,
    'type'              : 'iframe',
    'onClosed'          : function() {
            alert('test');
            $(".popup").trigger('click');
        } 
});

$(".popup").fancybox({
    'autoScale'         : false,
    'centerOnScroll'    : true
});

// and here is the HTML code to trigger the hidden div:
<a style="font-weight: bold;" href=#data class=popup>our data</a>

//and the HTML code of the link inside the hidden div that gets displayed in the fancybox:
<a id=exemple title="xxx" href=xxx.php?id=xxx>link</a>

Ответы [ 3 ]

5 голосов
/ 05 апреля 2012

Я работал с той же вещью, и onClosed не работал.После долгих исследований я выяснил, что существует какая-то проблема с версиями, и onClosed работает в старых версиях Fancy Box.Другой подход, который работал для меня, заключается в следующем: использовать beforeClose вместо onClosed.

'beforeClose': function () {alert ('test')},

Это может быть полезнодля некоторых из читателей.

4 голосов
/ 18 октября 2011

Было бы полезно, если бы у вас был jsFiddle для работы, но сначала попробуйте обернуть код функции onClosed в setTimeout.Ноль времени должно быть достаточно:

'onClosed' : function() {
    setTimeout(function(){
        $(".popup").trigger('click');
    }, 0);
} 
1 голос
/ 12 апреля 2012
'onClosed'=> 'js:function() { alert("test") }',

примечание: нам нужно поставить "js:"

Я звоню в fancybox автоматически (используя добавочный номер)

Работает нормально для меня

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...