Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Очередь событий (https://javascript.ru/forum/jquery/8015-ochered-sobytijj.html)

Petka 03.03.2010 12:01

Очередь событий
 
Задача. Есть изображение, хочу его плавно заменить по клику на другое изображение.
Порядок получается такой.
1. делаем fadeTo изображения в положение приближенное к 0
2. заменяем src изображения на другой
3. делаем fadeTo изображения в значение 1

Чтобы выполнить действие 2, надо дождаться конца выполнения действия 1, значит используем очередь queue().
Но с этим затык. В очереди срабатывает действие 2, но потом не хочет действие 3.

jQuery(document).ready(function(){

	jQuery(".info_page_photos_links a").click(function(){

		var largePath = jQuery(this).attr("href");
		var largeAlt = jQuery(this).attr("title");

		jQuery(".info_page_photos_large").fadeTo("low", 0.1);

		jQuery(".info_page_photos_large").queue(function () {
	        jQuery(".info_page_photos_large").attr({ src: largePath, alt: largeAlt });
			jQuery(".info_page_photos_large").fadeTo("low", 1);
		});

		return false;
	});

});


пример тут.

e1f 03.03.2010 12:10

jQuery(".info_page_photos_links a").each(function(){
    var tmp = new Image();
    tmp.src = jQuery(this).attr("href");
}).unbind('click').click(function(){

    var largePath = jQuery(this).attr("href");
    var largeAlt = jQuery(this).attr("title");

    jQuery(".info_page_photos_large").fadeTo("low", 0.1, function(){
        $(this).attr({ src: largePath, alt: largeAlt }).fadeTo("low", 1);
        
    });

    return false;
});

Petka 03.03.2010 12:21

Спасибо. Теперь постараюсь понять как это работает :)


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