Это баг или я что-то непонимаю?

Функция slideToggle( скорость, [вызов] ) В документации сказано, что можно указать функцию, которая будет выполняться после окончания анимационных эффектов. Указываю, а она почему-то выполняется сразу...
function callback(){
	$("#cpanel").remove();
}
$("#cpanel").bind("dblclick", function () {
	$(this).slideToggle(500, callback());
});
источник: http://jquery-docs.ru/Effects/slideT...#speedcallback
9 ответов

Указываю, а она почему-то выполняется сразу...
потому что ее вызываете и результат ее выполнения передаете вторым параметром в slideToggle


Не понял, а как надо?


а немного подумать?


Второй параметр это и есть функция, которая вызывается после выполнения анимации, а 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()});
});