2012-02-09 14 views
1

Я хочу использовать три условия в своем заявлении if. Вот мой код:Как добавить три условия в JQuery

<script> 
    jQuery(document).ready(function() { 
     var num_one; var num_two; var num_three; 
     $("#control").attr("disabled", "disabled"); 

     $('#col-1 li').click(function(){ num_one = true; getState();}); 
     $('#col-2 li').click(function(){ num_two = true; getState();}); 
     $('#col-3 li').click(function(){ num_three = true; getState();}); 

     function getState(){ 
      if ((num_one == true) & (num_two == true) & (num_three == true)) { 
       $("#control").removeAttr("disabled"); 
      } 
     } 

     /*$('#col-1 li').click(function(){$("#control").removeAttr("disabled");*/ 
    }); 

    /**$("#enableBtn").click(function() { 
     $("#clearBtn").removeAttr("disabled"); 
    });**/ 
</script> 

Он работал, когда я использовал только два условия: if ((num_one == true) & (num_two == true)), но когда я добавить третье условие это не работает. Как добавить три условия в оператор if?

ответ

1

Необходимо заменить & (побитовое И) на && (логическое И). Кроме того, поскольку тип переменных, которые вы проверяете, является логическим, вам не нужна проверка равенства.

if (num_one && num_two && num_three) { 

Working example

+0

работает на 'если (num_one && num_two) {' и 'если (num_one && num_three) {', но не работает на 'если (num_one && && num_two num_three) { ' – ahkeno

+0

Хорошо работает здесь: http://jsbin.com/eyogoj/edit –

1

оператор И это не &&&. Измените это, и он должен работать.

+0

Я тоже попробовал &&, но он все еще не работал. – ahkeno

+0

col-3 извлекает данные в виде подкаталога на основе col-1 и col-3, выбранных из таблицы. Таким образом, весь ваш код комментариев работает нормально в нормальном случае. Я добавил '$ ('# col-3 li'). («click», function() {num_three = true; getState();}); 'он работает сейчас. – ahkeno

4

Вы ищете двойной амперсанд &&, а не единственный & (который является оператором Bitwise AND, а не тем, что вы ищете).

Кроме того, вам не нужно писать x == true. Просто писать x достаточно:

if (num_one && num_two && num_three) { 
    ... 
Смежные вопросы