Почему этот jquery не загружает контент через AJAX в IE8? - PullRequest
0 голосов
/ 08 апреля 2011

IE снова поразил меня своими потрясающими возможностями браузера.На этот раз, убедившись в прекрасной ошибке в файле jQuery.min (google CDN), я каким-то образом стал причиной того, что мой jquery не загружал контент через AJAX.

Вот ссылка: http://themes.thefinishedbox.com/portfolio/

Нажмите наверхние ссылки в любом другом браузере перед тестированием в IE вы увидите, что они загружают внешние страницы в добавленный div через jQuery.

Я заметил, что в IE8 кажется, что доходит до значка загрузчика и не отображаетсяне загружаю страницу.Я предупредил переменную $ href, и это похоже на корректный URL.Не уверены, что здесь происходит?

Вот источник, если это помогает, или вы можете просто посмотреть на него RAW: http://themes.thefinishedbox.com/portfolio/wp-content/themes/portfolio/js/custom.js?ver=3.1 (вы захотите посмотреть на второй $ (function ())

$(function() {
    $('#navigation ul > li a').each(function() {

        $(this).click(function(e) {

            $('*').removeClass('active');

            $.ajaxSetup ({  
                cache: false  
            });

            var $this = $(this);

            e.preventDefault();

            var $url = $(this).attr('href'); 

            var $loader = '<div id="whiteLoader" />';

            if($('#page').length === 0) {

                $('<div id="page" />').insertAfter('#header');

                $('#page').queue(function() {
                    $(this).animate({height: '120px'}, 300);
                    $(this).html($loader);
                    $(this).animate({backgroundColor: '#fff'}, 300);
                    $(this).dequeue();                    
                });

                $('#page').queue(function() {
                    $('#page').load($url + ' #pageEntry', function() {
                        var $height = $('#pageEntry').height();
                        var $h = $height + 70;
                        $(this).animate({height: $h + 'px'}, 600, function() {
                            $(this).css({height: 'auto'});
                            $this.addClass('active');
                        });
                    });
                    $(this).dequeue();
                });

            } 

            if($('#page').length == 1 && $('#pageEntry').length == 1) {

                $('#page').slideUp(function() {

                    $(this).remove();
                    $this.removeClass('active');

                    $('<div id="page" />').insertAfter('#header');

                    $('#page').queue(function() {
                        $(this).animate({height: '120px'}, 300);
                        $(this).html($loader);
                        $(this).animate({backgroundColor: '#fff'}, 300);
                        $(this).dequeue();                    
                    });

                    $('#page').queue(function() {
                        $('#page').load($url + ' #pageEntry', function() {
                            var $height = $('#pageEntry').height();
                            var $h = $height + 70;
                            $(this).animate({height: $h + 'px'}, 600, function() {
                                $this.addClass('active');
                            });
                        });
                        $(this).dequeue();
                    });

                });
            }

            $('.closex').live('click', function() {
                $(this).parent().parent().slideUp(function() {
                    $(this).remove();
                    $('*').removeClass('active');
                });
            });

        });

    });
}); 

Любая помощь будет высоко оценена!

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Проблема в том, что вы пытаетесь анимировать цвет фона

$(this).animate({backgroundColor: '#fff'}, 300);

Это не поддерживается, если вы не включите пользовательский интерфейс jQuery (, который реализует эту функцию ).

Таким образом, вы передаете неверный ввод, и это приводит к тому, что IE задыхается.

Считайте ошибку http://bugs.jquery.com/ticket/7256 для получения дополнительной информации ..

Включение ссылки на скрипт пользовательского интерфейса jqueryисправляет его ( проверено ) или комментирует эту строку (, поскольку фон уже белый ).

0 голосов
/ 08 апреля 2011

Вы пробовали обновить до последней версии jquery? Текущая версия 1.5.2 и похоже, что вы используете 1.4.2.

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