Загружать Galleria при переходе на конкретную вкладку Jquerytools - PullRequest
0 голосов
/ 04 ноября 2011

У меня проблемы с интеграцией плагина галереи изображений Galleria на одну из моих вкладок Jquerytools. При переходе непосредственно на страницу с помощью Galleria (например, www.domain.com/index.php#tabnameofgalleriapane) проблем нет.

Всякий раз, когда панель с галереей загружается не сразу (панель по умолчанию является другой панелью), Gallery выдает ошибку: Fatal error: Could not extract a stage height from the CSS. Traced height: 0px., что логично, поскольку, когда панель Galleria не активна, ее значение css, вероятно, равно display:none;. ..

Определение высоты и ширины буквально не работает. Это была предыдущая настройка:

jQuery("#jp_nav").tabs(".jp_pane", { history: true } );
jQuery('#gallery').galleria({
    imageCrop: false,
    transition: 'slide',
    autoplay: 7000,
    width: 960,
    height: 640
});

Так что я думал связать загрузку плагина Galleria с панелью, содержащей плагин Galleria, потому что в этот момент панель Galleria действительно имеет высоту ... Я нашел кое-что, чтобы помочь мне на моем Кстати, но теперь я получаю другие ошибки конфликта JavaScript (объяснение см. ниже).

jQuery("#jp_nav").tabs(".jp_pane", {
  initialIndex: 0,
  onBeforeClick: function(event, i) {
    // get the pane to be opened
    var pane = this.getPanes().eq(i);
    var src = this.getTabs().eq(i).attr("href");
    pane.load(src, "#jp_images", function(){
        jQuery('#gallery').galleria({
            imageCrop: false,
            transition: 'slide',
            autoplay: 7000,
            width: 960,
            height: 640
        });  
    });
  },
  history: true
});

По независящим от меня причинам веб-сайт, для которого я пишу, использует jQuery и Prototype / Scriptaculous. Поэтому, пожалуйста, примите во внимание, что скрипт должен быть написан в режиме noConflict. (Что я делаю в моей настройке $.noConflict();)

Может кто-нибудь сказать мне, если приведенный ниже скрипт выводит меня на правильный путь? Может кто-нибудь помочь мне изменить скрипт для работы при загрузке вкладки #jp_images? Прямо сейчас вышеприведенный скрипт выдаёт мне ошибки конфликта с Prototype.

С нетерпением жду ваших экспертных мнений!

С уважением,

Маартен

1 Ответ

0 голосов
/ 08 ноября 2011

Мне удалось найти быстрое и грязное решение (спасибо vfxdude )

Каждый раз, когда нажимается вкладка с Galleria, я принудительно перезагружаю страницу, например:

tabName = 'jp_images';
jQuery('#jp_nav a[href="#'+tabName+'"]').click(function() { if (location.hash == '') location.replace(location.href+'/#'+tabName); });

После этого я могу просто использовать обычную инициализацию старого плагина Galleria.

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

...