jQuery `.click`条件不响应`else`
jQuery `.click` Conditional not responding to `else`
我有一个函数,它通过添加'.expand'类来检查我的trigger
元素是否有类.collapsed
和target
元素。但是,动画仅发生一次,并且仅在条件为true
时发生。由于某些原因,false
分支被忽略。这是我的功能:
function toggleArrow(){
var target = $(this).find('img.arrow');
if($(this).hasClass('collapsed')){
$(target).addClass('expanded');
} else {
$(target).removeClass('expanded');
}
}
$('.foo a').click(toggleArrow);
编辑:
创建了Bootply:http://www.bootply.com/OP1yHNihDe#
解决方案:
使用@Binvention应答并删除else
分支,将addClass
/removeClass
替换为toggleClass
,如下所示:
function toggleArrow(e){
var target = $(this).find('img.arrow');
if(!$(this).is('expanded')) {
$(target).toggleClass('expanded');
}
}
我会有一个单独的类,要么折叠,要么展开(折叠会更容易,因为对象上的默认显示是显示在网页上的块),然后只使用.toggleClass()
函数。它更简单,结果应该是一样的。所以你的代码看起来是这样的:
function toggleArrow(){
var target = $(this).find('img.arrow');
$(target).toggleClass('collapsed');
}
相关文章:
- jquery if else不返回警报消息
- 基于类的单击事件在10行之后不响应-数据表
- for循环,if else不工作Javascript
- 如果else不在javascript中工作
- javascript中的If/else不会为undefined返回else
- AJAX GET 请求内容不响应 jQuery
- jQuery 不响应无线电检查
- AJAX 代码定义错误或不响应
- jQuery toggleClass if else 不起作用
- InnerView 不响应其模板中的 DOM 事件
- 元素不响应 setStyle
- 滚动魔法不响应触发器元素
- JavaScript 如果 elseif else 不起作用
- 主干模板中的 DOM 元素不响应事件
- 自动生成的列表组项不响应活动类
- 我有一个基于计数器的 if/else 语句,但由于某种原因,else 不起作用
- Facebook评论插件在iframe中加载一个iframe,导致宽度不响应
- 为什么函数响应.protype而常规对象不响应
- React子组件不响应状态更改
- jQuery `.click`条件不响应`else`