gpt4 book ai didi

javascript - jquery 函数调用不起作用

转载 作者:行者123 更新时间:2023-12-01 02:06:03 27 4
gpt4 key购买 nike

这就是代码。问题是启动函数 play()this.play 调用总是报告错误。我尝试了几种不同的变体,但都不起作用。

[...]
event_listeners() {
var result;
$(document).on('keypress', function(evt) {
if (evt.which == 49) {
result = 1;
} else if (evt.which == 50) {
result = 2;
} else if (evt.which == 51) {
result = 3;
} else if (evt.which == 52) {
result = 4;
} else if (evt.which == 53) {
result = 5;
} else if (evt.which == 54) {
result = 6;
} else if (evt.which == 55) {
result = 7;
}
console.log(result);
this.play(result);
});
}

play(column) {
console.log('play methode' + column);
var movecount = 0;

availableRow = this._model.checkAvailableRow(column);

if (availableRow === -1) {
$('.won').text("Fehler! Spalte voll!");
return;
}
// Inkrementieren der Variablen, da checkAvailableRow() die Nummer der Zeile zurückgibt, hier aber der Arrayindex benötigt wird
availableRow++;

if (this.checkWin() == true) {
$('.won').html((currentPlayer === "Player 1" ? "Player 1" : "Player 2") + " gewinnt!");
}
if (movecount === 41) {
$('.won').html('Unentschieden!');
}
// Wechsel zum anderen Spieler
this.switchTurn();
movecount++;
}
[...]

执行时,此错误会显示在控制台中。

View.js:63 Uncaught TypeError: this.play is not a function

当我想启动 play() 函数时,我做错了什么?

最佳答案

play 函数超出了范围,因此,它在按键事件的上下文中不可用。使用 this 指代函数执行的范围(全局范围)。

仅使用 play(result) 即可解决该问题。

有关的更多信息,您可以查看here

关于javascript - jquery 函数调用不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50100968/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com