Javascript 使用单击事件重新启动函数
编辑* 在我的文字游戏中,我添加了一个重启按钮。现在的问题是,当我按下它时,它会返回到开始屏幕,就像它应该的那样。但是,当第二次单击开始按钮时,它会返回上一个已经玩过的游戏。我现在已经把我所有的代码放进了不同的函数中,这样我就可以在新游戏中再次运行它们了。问题是我不知道如何清除最后一场比赛,以便重新开始。单击此按钮时,如何重新启动所有功能 我有这些功能Javascript 使用单击事件重新启动函数,javascript,jquery,Javascript,Jquery,编辑* 在我的文字游戏中,我添加了一个重启按钮。现在的问题是,当我按下它时,它会返回到开始屏幕,就像它应该的那样。但是,当第二次单击开始按钮时,它会返回上一个已经玩过的游戏。我现在已经把我所有的代码放进了不同的函数中,这样我就可以在新游戏中再次运行它们了。问题是我不知道如何清除最后一场比赛,以便重新开始。单击此按钮时,如何重新启动所有功能 我有这些功能 createGrid() startplay() restartplay() keyPress() backGroundSound() drag
createGrid()
startplay()
restartplay()
keyPress()
backGroundSound()
dragEvent()
nextQuestion()
closeMessage()
replaySound()
backGroundImage()
我在document.ready函数中运行它们
$(document).ready(function () {
backGroundSound();
createGrid();
keyPress();
backGroundImage();
playBackGroundSound();
dragEvent();
$('.next-question').on('click', function () {
nextQuestion();
});
$('.close-message').one("click", function () {
closeMessage();
});
$(".replay-sound").click(function () {
replaySound();
});
//Click event to start the game
$(".start-btn-wrapper").click(function () {
startplay();
});
//Click event to restart the game
$(".restart-btn").click(function () {
restartplay();
});
当重新启动按钮被单击时,我希望它刷新功能,然后当再次单击开始按钮时,为用户启动一个新游戏。如果不刷新页面,我将如何执行此操作
我想在单击“重新启动”按钮时清除函数,然后在单击“开始”按钮时再次启动它们
此小提琴中只有脚本:始终可以执行非缓存的重新加载,如下所示:
window.location.reload(true)代码>
这会告诉浏览器重新加载页面,并显式地not使用内存中的任何内容(基本上与Windows机器上的Cntrl+F5
相同)。不过,这假设您不需要在当前“会话”中保留任何内容。您可能只需要清除存储上次游戏数据的任何数据结构。例如,如果它在数组中,则使用数据=[]
将其重置为空数组,或者如果在对象中为空对象数据={}
,等等。如果不了解更多有关代码结构及其工作方式的信息,则很难更具体
编辑
在调用$ready()
事件中的所有函数之前,查看您在该fiddle中发布的代码,您将一组变量初始化为空数组;我还没有仔细研究过代码,但是你可能需要再做一次才能开始你的新游戏
正如我之前所建议的,我将把代码移到一个新函数中:
Function newGame() {
randomWord = [];
listOfWords = [];
attemptNumber = [];
completionNumber = [];
populationNumber = [];
gridSize = [];
backGroundSound();
createGrid();
keyPress();
backGroundImage();
playBackGroundSound();
dragEvent();
}
然后调用$.ready()
处理程序中的newGame()
函数,并单击的处理程序。重新启动btn
:
$(document).ready(function () {
newGame();
$('.next-question').on('click', function () {
nextQuestion();
});
$('.close-message').one("click", function () {
closeMessage();
});
$(".replay-sound").click(function () {
replaySound();
});
//Click event to start the game
$(".start-btn-wrapper").click(function () {
startplay();
});
//Click event to restart the game
$(".restart-btn").click(function () {
newGame();
restartplay();
});
});
这与java有什么关系?请将您的问题标记为适当的。您已将此问题标记为Java。restartplay()
做什么?它是否已经运行了其他一些功能?如果游戏和那些函数是按照我的方式设计的,那么您只需在$.ready()
事件中运行开始时运行的所有函数。如果是这样的话,我会将这一系列调用抽象为一个newGame()
函数,并在$.ready()
和中调用它,从而保持干爽。重新启动btn
单击处理程序。我猜,restartplay()
已经做过类似的事情了吗?不,它只是添加和删除了必要的类@无用的代码我注意到代码中的一些其他问题,语句if(populationNumber>=6){
将始终计算为false
,populationNumber
是一个数组,在这种比较中,它将被强制为整数1
。1将始终小于6,因此该语句始终返回false。您可能的意思是如果(populationNumber.length>=6){
,这意味着“如果populationNumber
数组中有六个或更多项"。涉及completionNumber
的if
语句也存在类似问题。我需要一些更平滑的@Tieson t内容,而不仅仅是刷新页面。当按下重新启动按钮时,我会在返回开始屏幕时出现动画。重新加载时不会出现这种情况。我需要清除按下“重新启动”按钮时重新启动函数,然后在按下“启动”按钮时重新启动函数@Tieson TSo是否希望再次调用前6个左右的方法?否我希望createGrid()、backgroundImage()、nextquestion()、closeMessage()和replaySound()@Tieson TI可以发送一个摆弄@untible code中的jquery的命令谢谢,我就快到了。现在的问题是它再次启动了函数,但旧的仍然存在。我该如何清除旧的?@untible code现在已经很晚了,我明天再看一看。我还没有看过任何操纵DOM的代码但我猜你需要重置一些DOM节点中的值,以便在开始新游戏时看到重置值。我该怎么做?@无用代码我已经尝试过这种方法,但它仍然可以恢复旧游戏和新游戏。有没有办法清除旧游戏?@无用代码