请看我的小提琴;
http://jsfiddle.net/bazzle/rtrz86oe/7/
var opened = false;
当您单击该按钮时,该变量应更新为true,它会执行此操作。这意味着第一个条件正在起作用;
if (opened == false){
$('.btn').on('click',function(){
opened = true;
});
};
很好,但是当你再次点击它时,变量应该更新为false。由于该变量目前是真的'它应该使用此功能更改为false。但它没有。
if (opened == true){
$('.btn').on('click',function(){
opened = false;
});
};
似乎第二个条件函数由于某种原因没有运行。
由于
答案 0 :(得分:5)
您要在条件语句中添加单击处理程序,而应该执行以下操作:
$('.btn').on('click',function(){
opened = !opened; //reverse the state
});
答案 1 :(得分:4)
你需要处理程序本身的条件
$('.btn').on('click', function () {
opened = !opened;
});
或,您可以表达与
相同的内容ng-repeat
答案 2 :(得分:1)
尝试
var opened = false;
$('.btn').on('click',function(){
opened = !opened;
});
$('.state').text(opened);
$('.check').on('click',function(){
$('.state').text(opened);
});
答案 3 :(得分:1)
喜欢这个?:http://jsfiddle.net/rtrz86oe/8/
var opened = false;
$('.state').text(opened);
$('.check').on('click',function(){
if(opened) {
opened = false;
} else {
opened = true;
}
$('.state').text(opened);
});