У меня была похожая проблема сегодня, и ни один из ответов здесь не решил ее для меня. Мое решение состояло в том, чтобы сохранять состояния, чтобы при нажатии одного и того же элемента происходили разные вещи:
var estado="big";
$(".snacks").click(function() {
if(estado == "big"){
$("#men_snacks").animate({width:"183px", height:"45px"}, 1000);
return estado="small";
} else if(estado == "small") {
$("#men_snacks").animate({width:"82%",height:"550px"},1000);
return estado="big";
}
});