jquery $ .ajax () с IE - PullRequest
       8

jquery $ .ajax () с IE

0 голосов
/ 17 марта 2012

Я искал в Интернете все возможное, чтобы найти ответ на этот вопрос, и мне кажется, что мне чего-то не хватает. Я читаю в галерее фотографий из XML-документа через jquery $ .ajax (), и у меня проблемы с IE7. Функция, которую я использую, прекрасно работает во всех других браузерах, которые я тестировал.

Я прочитал тонну о том, как установить правильные dataType и contentType для IE, но я начинаю сомневаться, является ли это проблемой. Я пробовал множество комбинаций различных типов данных и типов содержимого, и ни один из них, похоже, не сработал. Мне интересно, может ли быть проблема с моим xml или с тем, как моя функция читает xml, потому что с функцией, установленной так, как она есть в настоящее время, все выполняется в IE7, но ни одно из изображений не добавляется в DOM ,

    var dataType;
if ($.browser.msie) { dataType = 'text' } else { dataType = 'html' };

$.ajax({
   type: 'GET',
   url: 'images/gallery-images/gallery-images.xml',
   dataType: dataType,
   success: function(parseXML){

   $(parseXML).find('section').each(function(){

    var $section = $(this),
        photos = $section.find('photo'),
        photoContainer = $('<div></div>', { id : $section.attr('id'), 'class' : 'gallery-section' });

    photos.each(function(){

        var photo = $(this),
        imageurl = photo.attr('imageurl'),
        title = photo.find('title').text(),
        description = photo.find('description').html(),
        kind = photo.find('description').attr('type');
        icon = photo.find('icon').attr('source');
            iconClass = photo.find('icon').attr('class');

        var photoWrapper = $('<div class="photo"></div>'),
            imageElem = $('<img />', { 'src' : imageurl, 'class' : 'gallery-photo' }),
            photoInfo = $('<div></div>', { 'class' : 'photo-info ' + kind }),
            iconInsert = $('<img />', { 'src' : icon, 'class' : iconClass }),
            header = $('<h1></h1>', { text: title }),
            photoDescription = $('<div></div>', { html: description });

        photoInfo.append(iconInsert).append(header).append(photoDescription);    
        photoWrapper.append(imageElem).append(photoInfo);
        photoContainer.append(photoWrapper); 

    });
        $('#photo-viewer-inner').append(photoContainer);
    });
    var videos = '<div id="videos"></div>';
        $('#photo-viewer-inner').append(videos);
        $('#videos').load('images/gallery-images/videos.html #video-inner');

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

Я в тупике, надеясь найти здесь помощь.

1 Ответ

0 голосов
/ 17 марта 2012

Нет ничего, что я бы распознал как IE7-snarl, но вот несколько советов:

  • Классы - Попробуйте установить классы с class="..." или .addClass('...') в отличие от реквизита на карте, например. photoInfo = $('<div class="photo-info"></div>').addClass(kind).
  • В объявлениях - icon и iconClass оба пропущены var (предыдущая строка заканчивается точкой с запятой).
  • Дубликаты идентификаторов? - Избегайте дублирования идентификаторов в видео div с помощью например. var videos = $('<div></div>').appendTo($('#photo-viewer-inner')).load('images/gallery-images/videos.html#video-inner');. Обратите внимание, что я удалил пробел из URL.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...