содержимое с вкладками с fancybox

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

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

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

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

$(документ).готовый(функция() {

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

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

              });     </script>

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

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

tabbed.js для login.php

onload = function() { var e; var i = 0; while (e = document.getElementById('galleryx').getElementsByTagName ('DIV') [i++]) { if (e.className == 'on' || e.className == 'off') { e.onclick = function () { var getEls = document.getElementsByTagName('DIV'); for (var z=0; z

please help!!!!


person Eno Bassey    schedule 12.11.2011    source источник


Ответы (1)


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

Теперь в консоли javascript firebug, когда я запускал код, он работал, а когда вы вводили его в свой 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 и #Login изначально имели класс 'show'. Затем измените первый бит моего кода jQuery выше на:

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

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

person Rahul Sekhar    schedule 12.11.2011
comment
спасибо, Рахул, постараюсь настроить скрипт, но тот скрипт, который я вставил, обрабатывает содержимое с вкладками, и сам по себе, без fancybox, он работает отлично..... Во-вторых... я хотел ситуацию, когда fancybox приспосабливается к размер страниц с вкладками и уменьшение высоты соответственно - person Eno Bassey; 13.11.2011
comment
Я пробовал приведенный выше код, и он не работал ни сам по себе, ни с fancybox. Я даже не использовал jquery в отдельном файле [login.php], но я добавил jquery только для проверки вашего скрипта, и это не сработало. любые другие предложения, пожалуйста. - person Eno Bassey; 13.11.2011
comment
Я думаю, что знаю, в чем сейчас заключается ваша проблема - отредактировано, чтобы отразить это. - person Rahul Sekhar; 13.11.2011