2012-02-20 3 views
3

Я пытался использовать скрипт, который отлично работает в Chrome и firefox, но Jams In IE.JQuery Загрузка изображения в IE

Смотрите здесь http://www.micahcarrick.com/code/jquery-image-swap/index.html

Почему это не работает в IE, никому ни малейшего представления в?

+0

Это только ломает после загрузки изображения из кеш, правильно? – Francisc

+0

Какая версия IE? Я смотрю на него в IE9, и похоже, что он работает. –

+0

Установили его на JSFiddle http://jsfiddle.net/yPme4/ – Dampsquid

ответ

6

В некоторых версиях IE вам необходимо зарегистрировать событие загрузки ДО того, как вы устанавливаете свойство .src, потому что если изображение находится в кеше, событие загрузки будет срабатывать сразу же после установки .src и, таким образом, вы пропустите если вы еще не установили обработчик события .load.

В коде jsFiddle, он должен был бы быть в этом (также упростили его немного):

var url = this.href; 
$('<img />').load(function() { 
    $('#imageWrap').css('background-image', 'none'); 
    $('#mainImage').attr('src', url).fadeIn(); 
}).attr('src', url); 

Вы можете увидеть его работы здесь: http://jsfiddle.net/jfriend00/vEVVG/

+0

Просто вложили это в JSFiddle, и это не имело значения. – Dampsquid

+0

u нужно изменить i.attr ('src') на this.href, чтобы получить его работа, не могу отредактировать ответ, но так в этом комментарии. http://jsfiddle.net/yPme4/2/ – Dampsquid

+0

@Dampsquid - ОК, внесенные изменения, чтобы заставить его работать в jsFiddle. Я просто пытался проиллюстрировать, где они должны установить настройку '.src'. Это главный момент здесь, но теперь он был упрощен и работает также в моем jsFiddle: http://jsfiddle.net/jfriend00/vEVVG/. – jfriend00

Смежные вопросы