使用jQuery重新加载页面

时间:2014-08-30 23:08:40

标签: jquery reload

我创建了一个页面,它将接受用户输入,然后将输入与单词进行比较。这个想法是用户有6次猜测这个词的机会。如果用户猜到单词或用完了猜测,点击的按钮将从 猜猜 更改为 开始新游戏 。我所做的一切都是正确的。

然后,用户将点击开始游戏按钮,页面将重置为原始值,这是我遇到问题的地方。我的按钮将更改为新值和新ID,但是当我单击按钮时游戏仍然会播放,然后当我再次单击它时它会重置。为什么不在第一次点击时休息?

以下是函数部分的外观

else if (theGuess.toLowerCase() == magicWord.toLowerCase()) 
{
    //The user guesses the correct word
    $("input[type=text]").ready(function () { $("#guestGuess").addClass("unblur"); });
    $("input[type=submit]").val("Start a New Game");
    $("input[type=submit]").attr("id","startNew");
$('#guestGuess').val('');
$('#startNew').click(function() {
        location.reload();
});
magicWordResult = "Your guess was " + theGuess + "! Nice going!";
//document.writeln("Your guess was: " + guestGuess + "\nand the magic word is " + magicWord);
}

您可以在http://liveweave.com/psAsxh

找到整个代码

3 个答案:

答案 0 :(得分:1)

只需使用location.reload(true) - 这将导致页面从服务器而不是从缓存重新加载。供参考:https://developer.mozilla.org/en-US/docs/Web/API/Location.reload

更新:检查你的游戏,仍然看着破坏结果的线条。我刚刚为点击#guess#startNew时调用的函数添加了console.log,结果是:在最大猜测后调用了#startNew函数,但每次点击都会调用这两个函数。 有一个非常简单(懒惰?)的方法来修复它而不必费心为什么当前的代码不起作用 - 只需为#startNew添加第二个按钮,所以不要改变单个按钮的功能你只会改变两个按钮的可见性。 另一种方法是在点击时只调用一个函数而不更改按钮的id并调整函数以处理参数 - 如function handleButton (value) {... } - 并猜测它只需处理游戏的猜测部分,一开始 - 新的处理开始新部分 - 只需调用handleButton("guess")handleButton("new")。由于你已经编码了这个游戏,我想你可以处理它;)

答案 1 :(得分:1)

我能够解决它。以下是我如何使其正常运行:

  • 当用户用尽猜测或猜测正确的工作时,提交按钮的id会更改为startNew
  • 然后我在空文本检查中添加了一个双重条件,代码将检查文本框是否为空,但代码将检查提交按钮的id是否为guestGuess

这就是我遇到问题的地方,因为当我点击一个空窗口时,部分代码也在运行。

我在这里更新了代码http://liveweave.com/SZDKHz

非常感谢您的帮助。

答案 2 :(得分:0)

我总是使用location.href = location.href来刷新,但它的纯JavaScript而不是jquery。