содержание с вкладками с fancybox - PullRequest
0 голосов
/ 12 ноября 2011

Я пытаюсь загрузить динамический контент через ajax с помощью fancybox.

это тянет хорошо, но я не буду менять вкладку, если я использую функцию по умолчанию или использую через ajax. но я использую fancybox и устанавливаю тип в 'iframe', он загружается и вкладки чередуются должным образом.

Я смотрю на то, что я не использую iframe, чтобы окно можно было легко и автоматически настраивать на выбранные вкладки

Живой сайт находится на www.wearsitbest.com ... ссылка для входа / регистрации.

$ (документ) .ready (function () {

      $("#various2").fancybox();

      $("#various3").fancybox();

              });     </script>

ссылка на подарочную коробку

ВХОД / РЕГИСТРАЦИЯ

tabbed.js для login.php

onload = function () {var e; var i = 0; в то время как (е = document.getElementById ('galleryx'). getElementsByTagName ('DIV') [i ++]) {if (e.className == 'on' || e.className == 'off') { e.onclick = function () {var getEls = document.getElementsByTagName ( 'DIV'); для (var z = 0; z

помогите пожалуйста !!!!

1 Ответ

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

Редактировать: Хорошо, я посмотрел на ваш файл login.php.Помните, что вы загружаете контент с помощью AJAX с помощью плагина fancybox.Это очень отличается от помещения его в iframe.Когда вы загружаете контент через AJAX, он является частью вашей страницы, а не отдельным HTML-документом на вашей странице.Он будет использовать те же скрипты, что и ваша страница, и любые скрипты на главной странице могут также применяться к загруженному контенту, поэтому я предложил вам использовать код jQuery.

Теперь, в firebug * 1006Консоль javascript, когда я запускал код, работал, а когда вы помещали его в файл login.php - нет.Очевидно, что скрипты не загружаются через ajax с помощью fancybox.Посмотрите: Использование fancybox на странице, загруженной AJAX .Вы можете увидеть, что скрипты не загружены, если вы проверяете элемент входа в fancybox в firebug или другом инструменте.

Следовательно, вам нужен отдельный код на главной странице, чтобы обрабатывать сценарии для бита входа в систему при загрузке,Вы можете использовать опцию fancybox onComplete для этого.Поэтому в вашем коде для инициализации бита fancybox для ссылки входа в систему $("#various3").fancybox(); используйте вместо этого:

$("#various3").fancybox({onComplete: function() {
    var $gallery = $('#gallery');
    var $titles = $gallery.find('div[title]');
    $titles.click(function() {
        var $this = $(this);
        if ($this.hasClass('off')) {
            $titles.removeClass('on').addClass('off');
            $this.removeClass('off').addClass('on');
            $gallery.find('.show').removeClass('show').addClass('hide').hide()
                .end().find('#' + $this.attr('title')).removeClass('hide').addClass('show').show();
        }
    });
});

Обратите внимание, что это на вашей главной странице.Этот код теперь будет запускаться каждый раз, когда fancybox загружает контент.Вы можете использовать свой собственный javascript-код tabbed.js здесь, а не jQuery-код, который я опубликовал, однако оба будут работать нормально.

Обратите внимание, что есть одна вещь, которую вы здесь делаете в корне неправильно. только причина, по которой вам понадобится файл login.php в качестве отдельной страницы, заключается в том, что у пользователя не был включен JavaScript - в этом случае ссылка приведет пользователя на эту страницу, а не загрузит fancybox. Однако ваша страница входа не будет работать должным образом без JavaScript.Пользователи без javascript не могут зарегистрироваться на вашем сайте .

Вы должны кодировать отдельную страницу login.php, чтобы она прекрасно работала без javascript, а затем полностью добавлять функциональность табуляции с помощью кода.Вам не нужен javascript на отдельной странице login.php, потому что у любого пользователя, получающего доступ к этой странице как есть, не будет включен javascript.

Простой способ заставить страницу работать без javascript - сделать и #Register, и# У логинов div изначально есть класс show.Затем измените первый бит моего кода JQuery выше:

var $gallery = $('#gallery');
$gallery.find('#Register').removeClass('show').addClass('hide');
var $titles = $gallery.find('div[title]');

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

...