jQuery根据变量的条件行事

时间:2015-08-17 15:13:35

标签: javascript jquery

请看我的小提琴;

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;
    });
};

似乎第二个条件函数由于某种原因没有运行。

由于

4 个答案:

答案 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);
});

Fiddle

答案 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);
});