我创建了一个菜单,使用div动画在我已经结构化的中间。当我点击打开按钮时,div菜单正在向右侧扩展一些固定宽度。但我的要求是在扩展菜单而不是打开“关闭”字后需要追加。当点击“关闭”div菜单应该折叠到前一个宽度,“打开”将来而不是关闭。
答案 0 :(得分:1)
animate函数有一个完整的参数,您可以在其中提供回调。 http://api.jquery.com/animate/
事件完成后将触发此回调。 在此回调中,您可以编辑您的值。
将李的班级改为“关闭”。 另外:使用'live'绑定。即使使用动态更改html,这个也可以使用。
CSS:
.open{
cursor:pointer;
background:black;
color:white;
}
.close {
cursor:pointer;
background:black;
color:white;
}
JS:
$(".open").live('click', function() {
$("#navMenu").animate({
width: "82px"
}, {
queue: false,
duration: 500,
complete: function() {
$(".open").text("<- CLOSE");
var $this = $(".open");
$this.removeClass();
$this.addClass("close");
}
});
});
$(".close ").live('click', function() {
$("#navMenu ").animate({
width: "50px"
}, {
queue: false,
duration: 500,
complete: function() {
$(".close").text("OPEN - >");
var $this = $(".close");
$this.removeClass();
$this.addClass("open");
}
});
});