Блокировка на время анимации
Добрый день, вот сижу вспоминаю и не могу вспомнить. Есть анимация, которая вызывается через функцию..
function test(){ $(".test").fadeTo("slow",0.4,function(){ ... // показываю сообщение }); } Я хочу чтобы до момента завершения fadeTo юзер не мог никуда нажать. Просто дальше по коду у меня идет обработка того же элемента: $(".test").click(function(){ $(this).fadeOut("slow"); }); получается пока идет затемнение, юзер может нажать на всплывающий элемент и он начнет пропадать(fadeOut).. хотя действие после fadeTo будет все равно выполнено(показ сообщения).. Хотелось бы чтобы во время выполнения fadeTo юзер не мог ничего нажать)) |
никак нельзя. только если выставлять в каждом обработчике lock-переменную, но оно вам надо?
|
Лучше вызовите stop перед fadeOut.
А так — можно показать див-заглушку на весь экран, которая будет перехватывать клики. |
просто я читал про метод arguments.callee там же есть такая тема, что функция выполниться один раз.. У меня была такая реализация, но я так и не понял до конца принцип работы.. может кто подскажет как работает сие чудо) Я понимаю, что это ссылка на туже функцию, так ведь?
|
arguments.callee указывает на функцию, вызвавшую текущую функцию. Чем оно Вам поможет?
|
ну вот например у меня есть такая конструкция. которая позволяет блокировать повторные нажатия:
$("#menu table").one("click", function (event) { var callee = arguments.callee; if ($(event.target).is("#menu td:not(#add_cook)")) { $("#menu td:not(#add_cook)").not($(event.target)).css('backgroundColor',''); $(event.target).css('backgroundColor','#740D13'); $id = $(event.target).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;} $("#content").animate({'height':$conH},$time,function(){ $("#text").show("drop",{direction: 'right'},400); $("#menu table").one("click", callee); }); }); }); } }); |
Часовой пояс GMT +3, время: 05:11. |