У меня есть две кнопки, и я хочу отключить «mazeButton», пока не завершится функция mazeGeneratorAndSolver.game.solve ().Ниже приведена одна из моих попыток сделать это.Я также пытался использовать глобальную переменную, которая сохранялась, если лабиринт находится в процессе решения, но я также не мог заставить это работать.
$(document).ready(function () {
$("#mazeButton").click(function () {
// Create the randomised maze.
mazeGeneratorAndSolver.maze = new Maze();
// Display the maze.
new mazeGeneratorAndSolver.DisplayMaze();
});
$("#solveButton").click(function () {
// Disable maze button until maze has been solved.
document.getElementById("mazeButton").disabled = true;
mazeGeneratorAndSolver.game.solve();
document.getElementById("solveButton").disabled = true;
// Re-enable maze button.
document.getElementById("mazeButton").disabled = false;
});
});
Функция mazeGeneratorAndSolver.game.solve () выполняетКоличество вещей, но в конце он вызывает следующую функцию:
function displaySolution(length) {
function myLoop () {
// Draw maze with timeout.
// Timeout inversely proportional to length of path
setTimeout(function () {
// Update game position to next cell in path.
game.position = game.position.nextCell;
mazeGeneratorAndSolver.currDiv = document.querySelector('[data-x="' + game.position.x + '"][data-y="' + game.position.y + '"]');
mazeGeneratorAndSolver.currDiv.className += ' path';
if (!(game.position === game.endPosition)) {
myLoop();
}
}, 1000 / length)
}
myLoop();
}
Как отключить «mazeButton», пока анимация для «myLoop» не будет полностью закончена?
Это нетот же вопрос.Речь идет об отключении кнопки до тех пор, пока не будет сгенерирован html.