2013-05-21 2 views
1

У меня есть следующие глобальной переменной, объявленной на ранней стадии в сценарии:Javascript, если утверждение неверно, но код выполняется

var ddFinished = 0; 

Это если заявление должно быть ложным, но по какой-то причине, он выполнен в виде если это правда:

$(this).click(function(){ 
      if (ddFinished = 3){ 
       $(this).find('.dd_chosen_answer').remove(); 
       $(this).removeClass("dd_question_dropped"); 
       $(this).droppable("enable"); 
      } 
      else { 
       $(this).droppable("disable"); 
      } 
}); 

Что-то не так с моим синтаксисом здесь? Цель состоит в том, чтобы дать мне переменную, которую я могу использовать для переключения того, станет ли этот элемент недоступным при щелчке.

В теории (моей теории) это должно работать, но выполняется if, но это не должно быть в соответствии с его обстоятельством. Переменная ddFinished не объявлена ​​или не изменена нигде в скрипте в настоящее время.

+9

', если (ddFinished = 3)' 'должно быть, если (ddFinished == 3)' – bfavaretto

+0

Это должно быть, если '(ddFinished === 3)'. '==' никогда не нужно и всегда неправильно. – Halcyon

+0

Нет, это не спорно. Дайте мне пример использования '==', и я скажу вам, почему это неправильно. – Halcyon

ответ

5

Это должно быть

if(ddFinished === 3) 
+2

Это причина, по которой программисты старой школы C писали, если такие чеки, как 'if (3 == ddFinished)', потому что 'if (3 = ddFinished)' не будет компилироваться. –

+0

это правильно. Потому что «if (ddFinish = 3)» присваивает значение 3 переменной. – Nettogrof

+0

@MikeCorcoran хорошая точка, в редакторах JavaScript вы получите сообщение об ошибке ... – xandercoded

Смежные вопросы