2015-08-17 20 views
-1

請看我的小提琴;作用於變量條件的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; 
    }); 
}; 

看起來第二個條件函數由於某種原因沒有運行。

感謝

+0

爲什麼向下票呢? – bazzlebrush

回答

4

您需要的條件處理程序本身

$('.btn').on('click', function() { 
     if (opened == false) { 
      opened = true; 
     } else { 
      opened = false; 
     } 
    }); 

或者內,你可以表達相同

$('.btn').on('click', function() { 
     opened = !opened; 
    }); 
5

要添加的內部條件語句單擊處理程序,相反,你應該這樣做:

$('.btn').on('click',function(){ 
    opened = !opened; //reverse the state 
}); 
1

嘗試

var opened = false; 
$('.btn').on('click',function(){ 
    opened = !opened; 
}); 

$('.state').text(opened); 
$('.check').on('click',function(){ 
    $('.state').text(opened); 
}); 

Fiddle

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