Установите colorbox в .load-обратный вызов в Facebook Tab / Canvas - PullRequest
0 голосов
/ 17 декабря 2011

У меня возникла небольшая проблема с цветным ящиком при использовании его на вкладке / холсте facebook.

Обычно я загружаю другой файл (содержащий несколько изображений) с помощью ajax (jQuery) на свою страницу холста и хочу, чтобы colorbox открыл эти картинки. Все работает нормально, когда я прикрепляю colorbox в обратном вызове моего ajax .load , пока я не на холсте facebook .

Но как только я открою страницу в Facebook, она больше не будет открывать colorbox. Все остальные функции jQuery работают.

код-пример

$('#slider').load('content.php', { ajax: 'on' }, function(e) {
            $('.gallery').colorbox({rel:'gal'});
});

Я нашел решение, чтобы оно работало - мне нужно определить colorbox в файле, который загружается с ajax. Но я не понимаю, почему это не работает в обратном вызове, и я не думаю, что это очень хорошее решение. Прежде чем я захочу двигаться дальше и развивать дальнейшие вещи в моем fb-canvas, я должен знать, почему это происходит.

1 Ответ

0 голосов
/ 13 января 2012

У меня было несколько быстрых и грязных тестов, и все это отлично работает. Я пытался воспроизвести проблему, но ничего не смог найти. Должно быть, я был слепым, но мой отладчик на самом деле жаловался на обратный вызов .load ()! Это была всего одна строка (до вызова colorbox):

$('#slider').css({left: (-100 * $('#' + History.getState().data['show']).position().left / $('#data').width()) + '%'});

Я не вижу никаких проблем с ним, и я не эксперт, но у моего отладчика (Firebug) также не было причин для его перечисления в консоли (без каких-либо комментариев), поскольку он все еще работал - кроме как из colorbox- позвони после этого. И вот в чем дело: после помещения вызова colorbox перед этой строкой (он все в том же обратном вызове load()), все заработало.

Все еще в замешательстве и не знаю, что это было. Я до сих пор не уверен, не связано ли это сейчас с colorbox или нет, потому что там отладчик плачет, только когда я помещаю вызов colorbox прямо за ним. Weird!

...