Плагины jQuery недоступны во время полного обратного вызова ajax - PullRequest
0 голосов
/ 14 июня 2011

Я использую плагин jQuery fancybox для отображения iframe с контекстной информацией о записи, когда пользователь нажимает на ссылку.

Плагин .fancybox () не найден во время выполнения обратного вызова ajax success.Аналогично следующему:

$(function() {
    Widgets = {
        show_dialog: function(width, height) {
            $('.fancybox').fancybox({ fancybox settings here});
        }
    }
});

Я могу сказать, что fancybox загружается и становится доступным, когда вышеуказанный объект Widgets определяется после проверки точки останова сразу после нее.Я также могу исправить вызов этой функции, обернув функцию show_dialog в анонимную функцию с областью действия $, как показано ниже:

$(function() {
    Widgets = {
        show_dialog: function($) { return function(width, height) {
            $('.fancybox').fancybox({ fancybox settings here});
        }; }($)
    }
});

Дополнительные сведения ... Я использую плагин postMessage jQuery для отправки сообщенияот дочернего фрейма до родительского фрейма, если это имеет значение (я не думаю, что это должно)

Кто-нибудь может объяснить, что происходит?Чувствуется, что $ теперь переназначается при выполнении страницы, но я нигде не загружаю его.

РЕДАКТИРОВАТЬ: Обновлена ​​область видимости fancybox до $ ('. Fancybox').1014 *

1 Ответ

0 голосов
/ 14 июня 2011

Мне кажется, что вам нужно прикрепить этот вызов к какому-либо объекту, например: $("a.text").fancybox({opts});

Какую ошибку вы видите? Вы на самом деле выполняете этот код со страницы в рамке или от родительского?

...