Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用单击事件重新启动函数_Javascript_Jquery - Fatal编程技术网

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节点中的值,以便在开始新游戏时看到重置值。我该怎么做?@无用代码我已经尝试过这种方法,但它仍然可以恢复旧游戏和新游戏。有没有办法清除旧游戏?@无用代码