2014-08-30 142 views
0

我创建了一个页面,它将接收用户输入,然后将输入与单词进行比较。这个想法是,用户有6次机会猜测这个词。如果用户猜字或跑出的猜测点击将竞猜改变开始新游戏按钮。我所做的都对。用jQuery重新加载页面

这个想法是,然后用户将点击开始游戏按钮和页面将重置为原始值,这里是我有一个问题。我的按钮将变成新的值和新的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

回答

1

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

  • 当用户用完了猜测的或猜测正确的工作提交按钮的id被改为startNew
  • 于是我加了一个双条件空文本检查代码将检查文本框是否为空,并且代码将检查提交按钮的id是否为guestGuess

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

我更新这里http://liveweave.com/SZDKHz

代码非常感谢你的所有帮助。

+0

很高兴你自己修复它 - 小的细节只是为了确保:你会用相应的计数器修复零件。目前,当你开始一个新游戏时,它开始从0开始倒数​​(例如第二游戏第二个错误猜测值-2等等)。 – 2014-08-31 18:11:50

0

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

0

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

更新:检查你的游戏,仍然看着破坏结果的线条。我刚刚为点击#guess#startNew而调用的函数添加了console.log,结果是:在max猜到#startNew函数被调用之后,但每下次点击都会调用这两个函数。 有一个非常简单的(懒惰?)方法来修复它,而不必为当前代码不起作用而烦恼 - 只需为#startNew添加第二个按钮,而不是更改单个按钮的功能,只需更改其可见性两个按钮。 一种不同的方法是在不改变按钮的ID的情况下仅调用一个函数,并且调整功能以处理参数 - 比如function handleButton (value) {... }-并且对于猜测它只处理猜测部分的游戏,开始新的它处理开始新的部分 - 只需拨打handleButton("guess")handleButton("new")。正如你已经编码这个游戏,我想你可以处理;)

+0

即使我添加位置。重新加载(true)我仍然必须在按钮上点击两次才能重新加载。我不认为我的网页是从缓存中完成的。 – Tavo 2014-08-30 23:52:03

+0

好吧,我刚刚玩过你的游戏两次,我想我知道你的意思。将看看代码,看起来它有什么要做,你如何绑定/取消绑定提交的click()事件。 – 2014-08-31 00:04:38

+0

非常感谢你matthias_h。 – Tavo 2014-08-31 00:28:58