Просмотр полной версии : Это баг или я что-то непонимаю?
Kenshi25
25.09.2010, 11:55
Функция slideToggle( скорость, [вызов] )
В документации сказано, что можно указать функцию, которая будет выполняться после окончания анимационных эффектов. Указываю, а она почему-то выполняется сразу...
function callback(){
$("#cpanel").remove();
}
$("#cpanel").bind("dblclick", function () {
$(this).slideToggle(500, callback());
});
источник: http://jquery-docs.ru/Effects/slideToggle/#speedcallback
Указываю, а она почему-то выполняется сразу...
потому что ее вызываете и результат ее выполнения передаете вторым параметром в slideToggle
Kenshi25
25.09.2010, 12:36
Не понял, а как надо?
Kenshi25
25.09.2010, 13:33
Второй параметр это и есть функция, которая вызывается после выполнения анимации, а function callback(){} это просто объявление, а не выполнение, на самом деле багом попахивает)
Так вот slideToggle(500, function(){ callback() });
Второй параметр это и есть функция, которая вызывается после выполнения анимации
должен быть
но вы почему-то не передаете вторым параметром функцию
sysya,
а зачем вы callback в анонимную функцию завернули?
sysya,
а зачем вы callback в анонимную функцию завернули?
Потому что так надо делать, как разработчик показывает http://api.jquery.com/slideToggle/
$(this).slideToggle(500, callback());
function callback(){
$("#cpanel").remove();
}
$("#cpanel").bind("dblclick", function () {
$(this).slideToggle(500, callback);
});
либо
$("#cpanel").bind("dblclick", function () {
$(this).slideToggle(500,function(){$("#cpanel").remove()});
});
Потому что так надо делать
Не надо так делать, точнее необязательно.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot