Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   выполнять функции по очереди (https://javascript.ru/forum/jquery/10506-vypolnyat-funkcii-po-ocheredi.html)

pitonvas 07.07.2010 15:58

выполнять функции по очереди
 
только начал изучать jQuery, извиняюсь, если неправильно или непонятно назвал тему.
сделал такой скрипт аяксовой загрузки
$(document).ready(function(){
			$('.artmenu').find('a').click(function(){
				$.ajax({
				beforeSend: function(){
					$('.article').slideUp("slow")
				},
				complete: function(){
					$('.article').slideDown("slow");
				},
				url: '/content.php', 
				type: "POST",
				data: ({hui : this.href.split(location.hostname+'/#')}),
				success:function(msg){
						$('.article').html(msg);
					}
				});
			})
		});

проблема в том, что данные загружаются, когда див ещё не до конца свернулся.
как сделать, чтоб див сначала свернулся, потом в него загрузились данные, а потом красиво развернулся?

exec 07.07.2010 16:03

slideDown в success

pitonvas 07.07.2010 16:38

Цитата:

Сообщение от exec (Сообщение 62640)
slideDown в success

раньше так и было. но всё равно аджакс иногда успевает за загрузить хтмл и начать разворачиваться до того, как slideUp до конца свернётся

exec 07.07.2010 16:50

Ну тогда аякс в колбэк slideUp, slideDown в success.

$(elem).slideUp('normal', function () {
$.ajax(…);
});

pitonvas 07.07.2010 17:07

Цитата:

Сообщение от exec (Сообщение 62660)
Ну тогда аякс в колбэк slideUp, slideDown в success.

$(elem).slideUp('normal', function () {
$.ajax(…);
});

вариант, что-то я сам не додумался. но всё-же теряется 600 мс, нельзя ли как-нибудь сделать, чтоб пока всё сворачивалось, аджакс себе спокойно загружал данные?
а разворачиваться начиналось, после закачивания slideUp или после 600мс?

pitonvas 07.07.2010 22:32

Цитата:

Сообщение от exec (Сообщение 62660)
Ну тогда аякс в колбэк slideUp, slideDown в success.

$(elem).slideUp('normal', function () {
$.ajax(…);
});

в этом случае у меня скрипт спотыкается на "this.href is undefined"

вы меня простите, я новичок в программировании, только в школе кубасик изучал ^_^
$(document).ready(function(){
	$('.artmenu').find('a').click(function(){
		$('.article').slideUp("slow", function(){
			$.ajax({
			url: 'content.php', 
			type: "POST",
			data: ({hui : this.href.split(location.hostname+'/#')}),
			success:function(msg){
					$('.article').html(msg);
					$('.article').slideDown("slow");
				}
			});
		});
	})
});

как в этом случае передать переменную this.href во вложенную функцию?

exec 07.07.2010 22:39

$(document).ready(function(){
	$('.artmenu').find('a').click(function(){
		var obj = this;
		$('.article').slideUp("slow", function(){
			$.ajax({
			url: 'content.php', 
			type: "POST",
			data: ({hui : obj.href.split(location.hostname+'/#')}),
			success:function(msg){
					$('.article').html(msg);
					$('.article').slideDown("slow");
				}
			});
		});
	})
});

pitonvas 07.07.2010 23:28

вот спасибо огромное, сейчас всё так красиво получается (;


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