更改第二次推送时不起作用的元素高度
Change elements height not working on second push
我有一个增加元素高度的按钮(#nav按钮)。但我希望再次按下相同的按钮时也能降低高度。代码:
$(document).ready(function(){
$('.nav-button-open').click(function(){
$('.nav-bar').animate({height:'90px'}, 500);
$("#nav-button").attr('class', 'nav-button-close');
});
$('.nav-button-close').click(function(){
$('.nav-bar').animate({height:'10px'}, 500);
$("#nav-button").attr('class', 'nav-button-open');
});
});
Fiddle:http://jsfiddle.net/mdecler/e4XED/
jQuery可以很好地增加高度,但当我再次按下按钮时,我无法降低高度!我做错了什么?
谢谢你的帮助!
考虑将jQuery代码更改为:
$(document).ready(function(){
$('#nav-button').click(function(){
if($(this).hasClass("nav-button-open")){
$('.nav-bar').animate({height:'90px'}, 500);
$("#nav-button").attr('class', 'nav-button-close');}
else{
$('.nav-bar').animate({height:'10px'}, 500);
$("#nav-button").attr('class', 'nav-button-open');
}
});
});
演示链接:
http://jsfiddle.net/e4XED/4/
我认为,您应该使用.live('click',…),因为您可以动态更改按钮的类,但只在开始时设置click事件。更正jsfiddle。
nav-button-close
类不存在。使用on
。
查看此jsFiddle
注意:不要使用live
,它已被弃用。
正如aleksey所说,使用live。或者,您可以添加一个类并检查它是否存在。类似:
$('.nav-button').click(function(){
if($(this).hasClass('open')){
$('.nav-bar').animate({height:'10px'}, 500);
$(this).removeClass('open').addClass('close');
}else{
$('.nav-bar').animate({height:'90px'}, 500);
$(this).removeClass('close').addClass('open');
}1
});
相关文章:
- 在IE8中不起作用的元素上触发单击事件
- 删除不起作用的父元素和所有子元素
- 更改第二次推送时不起作用的元素高度
- 为什么body元素上的onclick事件不起作用
- iframe中的jQuery查找元素不起作用
- jQuery选择ajax调用中附加的元素不起作用
- JQuery-动态创建的元素css不起作用
- angular元素在通过ng类添加类时不起作用
- 当我动态创建元素时,选择的插件不起作用
- .clone().appendTo-替换不起作用的元素样式
- 我的ID获取元素不起作用
- Javascript - 当使用 Javascript 生成 HTML 元素时,Magnific Popup 不起作用
- HTML 显示/隐藏元素 JS 不起作用
- 悬停时函数在具有相同 id 的多个元素中不起作用
- jQuery Ajax 元素的后期绑定不起作用
- 转换元素在引导程序中不起作用
- 为什么从 Angular 服务中的对象中删除此元素不起作用
- colorbox与元素实时绑定'分组获胜'不起作用
- 剑道模板在元素中单击不起作用
- 使用jQuery隐藏元素;不起作用