Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как отловить ошибку загрузки заднего фона в цикле? (https://javascript.ru/forum/events/45631-kak-otlovit-oshibku-zagruzki-zadnego-fona-v-cikle.html)

Coca-Cola 09.03.2014 00:16

Как отловить ошибку загрузки заднего фона в цикле?
 
Имеется цикл который загружает изображения в задний фон тега li. Иногда некоторые картинки не хотят подгружаться хотелось бы с помощью onerror отлавливать эти ошибки и записывать в задний фон иные изображения. Помогите реализовать :-E

рони 09.03.2014 00:20

Coca-Cola,
где код?

Coca-Cola 09.03.2014 00:24

var widthScreen = Math.round(document.getElementById('videolist').clientWidth/218);
var noticedEpizode = document.getElementById('videolist').getElementsByTagName('LI').length;
var c = widthScreen;
$('#prev').fadeTo(0,0.1);
document.getElementById('bordervideo').style.width = widthScreen*204+'px';
$('#bordervideo').css({'marginLeft':($('#wrapper').width() - $('#bordervideo').width()-120)/2+'px'});
for(var u=0;u<widthScreen;u++){
document.getElementById('videolist').getElementsByTagName('LI')[u].style.backgroundImage = 'url(http://'+document.getElementById('videolist').getElementsByTagName('LI')[u].getAttribute('alt')+'_200.jpeg)';
}//подгружаем столько серий сколько позволяет экран
function next(){
(noticedEpizode-c <= widthScreen) ? c = noticedEpizode : c+=widthScreen;
for(var u=0;u<c;u++){
document.getElementById('videolist').getElementsByTagName('LI')[u].style.backgroundImage = 'url(http://'+document.getElementById('videolist').getElementsByTagName('LI')[u].getAttribute('alt')+'_200.jpeg)';
}
$('#videolist').animate({'marginLeft':'-'+(204*(c-widthScreen))+'px'},250);
if(c == noticedEpizode)$('#next').fadeTo(200,0.1);
if(c != widthScreen)$('#prev').fadeTo(200,1);
}
function prev(){
if (c < widthScreen || c - widthScreen < widthScreen) {c = widthScreen;$('#videolist').animate({'marginLeft':'0px'},250);$('#next').fadeTo(200,1);$('#prev').fadeTo(200,0.1); return;}
c -= widthScreen;
$('#videolist').animate({'marginLeft':parseInt(document.getElementById('videolist').style.marginLeft) + (204*(widthScreen))+'px'},250);
if(c != noticedEpizode)$('#next').fadeTo(200,1);
if(c == widthScreen)$('#prev').fadeTo(200,0.1);
}

danik.js 09.03.2014 00:38

Ты че блядь не знаешь какие у тебя картинки на серваке есть? У тя че помойка там али че?

Хотя хуле, у тя и код выглядит как помойка. Даже в лом читать такой срач.

danik.js 09.03.2014 00:40

Сколько же вас жопоруких. Толпами прям валят. Страшно аж. Вы пришли уничтожить наш Мир?

danik.js 09.03.2014 00:41

С 8 марта мужыки!

рони 09.03.2014 00:58

Coca-Cola, может это чем поможет
Как определить загрузилось ли изображение
но ваш код :(

Coca-Cola 09.03.2014 01:36

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

kotamirov 09.03.2014 02:31

Цитата:

Сообщение от Coca-Cola (Сообщение 301842)
Спасибо. Да я знаю что код уг. Но я не очень опытный в этом деле можно сказать, что сопля. Опыт он же приходит со временем.

табуляцию используй , чтоб читабельно было.
вот так :
var secect_class_column_rubrics = document.querySelector('.rubric_click');
	var f_secect_class_column_rubrics = function(e){
		var state;
		e = e || window.event;
		e = e.target || e.srcElement;
}
	if(null != secect_class_column_rubrics)
	if(secect_class_column_rubrics.addEventListener)
		secect_class_column_rubrics.addEventListener('click',function(e){f_secect_class_column_rubrics(e)},false);
	else
		if(secect_class_column_rubrics.attachEvent)
			secect_class_column_rubrics.attachEvent('onclick',f_secect_class_column_rubrics);

danik.js 09.03.2014 08:04

Цитата:

Сообщение от kotamirov
secect_class_column_rubrics.attachEvent('onclick', f_secect_class_column_rubrics)

Так функция f_secect_class_column_rubrics объявлена ниже. А пока в переменной f_secect_class_column_rubrics лежит undefined. То есть код один же фиг не будет работать в IE8 (ради поддержки которого и написана эта строка :) )


Часовой пояс GMT +3, время: 12:37.