Проблема при попытке выполнить код jQuery с помощью динамически загружаемых вкладок Ajax jQueryUI - PullRequest
0 голосов
/ 12 февраля 2011

Привет
Я использую вкладки jQueryUI в файле index.php
У меня есть 4 вкладки и 4 файла. Я загружаю содержимое каждой вкладки с помощью функции Ajax jQueryUI Tabs

Каждый файл имеет свои собственные плагины и код jQuery, но моя проблема в том, что когда я загружаю (например) contact.php на вкладку "Контакты", код jQuery в contact.php не работает или не срабатывает .

Я видел функцию .ajaxComplete () , но она "грязная", потому что заставляет меня переместить весь код из каждого файла в файл index.php и я хотел отделить код и сделать все более чистым .

Кроме того, карты Google не работают при динамической загрузке во вкладках jQueryUI ...

1 Ответ

0 голосов
/ 03 августа 2011

Согласно http://docs.jquery.com

Любой компонент, для инициализации которого требуются некоторые размерные вычисления, не будет работать в скрытой вкладке, потому что сама панель вкладок скрыта с помощью дисплея: нет, так что любые элементы внутри не будут сообщать о своей фактической ширине и высоте (0 большинство браузеров).

Есть простой обходной путь. Используйте технику влево, чтобы скрыть неактивные панели вкладок. Например. в таблице стилей замените правило для селектора классов ".ui-tabs .ui-tabs-hide" на

.ui-tabs .ui-tabs-hide {
    position: absolute;
    left: -10000px;
}

Для карт Google вы также можете изменить размер карты, когда вкладка отобразится следующим образом:

$('#example').bind('tabsshow', function(event, ui) {
    if (ui.panel.id == "map-tab") {
        resizeMap();
}
});

resizeMap () вызовет функцию checkResize () Карт Google для конкретной карты.

...