Примерно так:
$(document).ready(function() {
$("#leftc").css("width", "20px").children().css("display", "none");
$("#leftc").hover(function() {
$(this).stop();
$(this).animate({ width: "197px" }).children().css("display", "block/inline");
}, function() {
$(this).stop();
$(this).animate({ width: "20px" }).children().css("display", "none");
});
...
});
edit : плохо, я неправильно прочитал ваш вопрос, просто выделите всех детей и скройте их (:
2-е редактирование: см. Код выше для исправления наведения. Вы можете использовать функцию stop()
, чтобы остановить все анимации на этом элементе, так что вы будете начинать каждый раз заново.
Если вы хотите сделать это с событием щелчка, вы можете просто установить флаг так:
var leftActive = false;
$("#leftc").click(function() {
if (leftActive) {
$(this).animate({ width: "20px" }).children().css("display", "none");
leftActive = false;
} else {
$(this).animate({ width: "197px" }).children().css("display", "block/inline");
leftActive = true;
}
});