Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   вопрос по animate (https://javascript.ru/forum/jquery/16684-vopros-po-animate.html)

kiff86 18.04.2011 21:04

Matre,
Что-то не пойму код..

$("#menu td:not(#add_cook)").each(function(){
       $(this).parent().one("click",function(event){ // добавление
        if(event.target == $(this)...){ // тут не понятно как сравнить элемент parent с тем на который кликнули...
        $(this).one("click", function(){
            $("#menu td:not(#add_cook)").not($(this)).css('backgroundColor','');
            $(this).css('backgroundColor','#740D13');
            $id = $(this).attr('id');
            $("#text").hide("drop",{direction: 'left'},600,function(){
                $(this).load("php/"+$id+".php",function(){
                    $(this).width(760);
                    $conH = $(this).height();
                    if($("#content").height() == $conH){$time = 0;}
                    else{$time = 1000;}
                    var self = $("#content"), callee = arguments.callee;
                    self.animate({'height':$conH},$time,function(){
                        $("#text").show("drop",{direction: 'right'},400);
                        self.one("click", callee);
                    });
                });
            });
        });
}
});
    });


как-то так что ли?

Matre 19.04.2011 04:26

Цитата:

тут не понятно как сравнить элемент parent с тем на который кликнули...
$(event.target).is("#id.myclass") // например


Что-то у Вас в коде много лишнего. Я сделал свой набросок:

$("#parent").one("click", function (event) {
		var callee = arguments.callee;
		if ($(event.target).is(".section")) {
			$(event.target).animate({...}, 1000, function () {
				$("#parent").one("click", callee);
			});
		}
	});
});


#parent — общий "родитель" для всех обрабатываемых элементов
.section — сам элемент, кот. нужно обработать

kiff86 19.04.2011 14:57

Спасибо огромное! Буду пробовать!
P.s. то есть метод each уже не нужен получается..

блин, тут получается, что анимате идет для элемента меню (так как на него кликают) .. а мне-то нужно так:
кликаем на пункт меню, начинает анимироваться другой элемент, и пока он до конца не дойдет блокировать другие пункты меню...

Matre 19.04.2011 17:20

Ну так замените $(event.target) из 4-ой строчки на нужный Вам элемент.

kiff86 19.04.2011 22:21

Matre,
только что попробовал.. чутка еще подправил код и - ура - все заработало! Огромное спасибо!


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