ul
не определено во втором обратном вызове. Измените его область видимости, чтобы он был виден обоим обратным вызовам.
var ul = $('ul');
$('.toggle').toggle(function(){
ul.fadeOut('fast', function(){
ul.fadeIn('fast').removeClass('off');
ul.addClass('on');
});
}, function(){
ul.fadeOut('fast', function(){
ul.fadeIn('fast').removeClass('on');
ul.addClass('off');
});
});
Если вы не хотите, чтобы ul
находился за пределами этого, либо оберните его в функцию, вызывающую себя, либо укажите ul
в каждом обратном вызове toggle()
.