2013-06-08 3 views
0

Я делаю простую игру tic-tac-toe, но по какой-то причине, пытаясь создать правила для игры, я не могу заставить ничего работать. У меня есть многомерный массив, в котором есть правила, но я не могу даже заставить одну ячейку реагировать соответственно. Что случилось с инструкцией bottom if в моей панели JavaScript? http://jsfiddle.net/Cp4Lu/1/ (Это если заявление, которое я имею в виду)Почему мой условный ничего не делает?

if (c9.text === 'X') { 
alert("You win!"); 
} 
+1

, который не имеет каких-либо событий, поэтому это происходит ровно один раз. –

+0

@ DanielA.White, так что я могу сделать, чтобы исправить это? – user2449973

+0

'id' не должен начинаться с цифры? – Teemu

ответ

3

У вас есть пара проблем

Uncaught ReferenceError: c9 is not defined 
  • Вы используете c9 за пределами области, в которой он определен
  • if (c9... не находится ни в одном event listener, поэтому это происходит только в первый раз, когда JavaScript изначально работает
  • JQuery-х text является функция, а не свойство
  • идентификатор в HTMLshould begin with a letter
+0

Означает ли это, Должен ли я определять свои winConditions в или перед моим слушателем событий, где я определяю переменные ячейки таблицы? – user2449973

+0

Если вы хотите использовать переменные в вашей 'document.ready' _function_, вам нужно иметь код, который использует их либо в той же/дочерней области, либо вам нужно« var »их по-разному. –

+0

Как бы я «var» их по-другому? – user2449973

0

Здесь вы идете: http://jsfiddle.net/Cp4Lu/4/

Я в основном положить весь код в документе $ (document) .ready и поставьте условное выражение в событие click. Я считаю, что теперь он делает то, что вы искали.

$('td').on('click', function() { 
    turnCount += 1; 
    setCurrentPlayer(); 
    $(this).text(currentPlayer); 
    console.log(turnCount); 
    if (c9.text() === 'X') { 
     alert("You win!"); 
    } 
}); 
Смежные вопросы