Я построил игру симона. Он работает правильно, если пользователь играет правильно, но в попытке сделать его полным доказательством. Я хотел отключить пользователя от выбора, пока компьютер показывает следующий шаблон. Я пробовал много комбинаций использования jquery .on/.off .unbind/.bind с e.preventDefault, но не имел успеха. Может кто-то, пожалуйста, помогите мне с решением по добавлению этой функции. Это кодовая ссылка, если вы хотите увидеть полный проект, поскольку я собираюсь опубликовать то, что похоже на соответствующий код ниже. http://codepen.io/RawleJuglal/full/vKxwWw/Simon Says Игра неспособна отключить колодки цвета во время поворота компьютера
HTML:
<div class='gameContainer'>
<div class="center"></div>
<a href="#" id="1" class="field blue"></a>
<a href="#" id="2" class="field yellow "></a>
<a href="#" id="3" class="field red"></a>
<a href="#" id="4" class="field green"></a>
</div><!--End of gameContainer-->
CSS:
function playComputerSequence(seq,speed){
//Preventing pressing not working
$('.field').each(function(){
$(this).off('click',function(e){
e.preventDefault();
});
});
//Everything below this working correctly
var count = Number($('.count span').text());
var i = 0;
var interval = setInterval(function(){
$('#'+seq[i]).addClass('on');
var audio = new Audio(audioArray[seq[i]-1]);
setTimeout(function(){
audio.play();
$('#'+seq[i]).removeClass('on');
i++;
},500)
setTimeout(function(){
if(i == count)
{
clearInterval(interval);
}
},500);
},speed);
$('.field').each(function(){
$(this).off().on('click',recordUserChoice);
});
}
function recordUserChoice(){
userArray.push(this.id);
var audio = new Audio(audioArray[this.id-1]);
setTimeout(function(){
audio.play();
},500);
checkSequence(userArray);
}
Adjit является правильным, '.off()' не принимает функцию Анон в том, как вы определил его. он принимает только ссылку на имя функции для удаления этого конкретного обработчика события из элемента. – Ryan