jwe*_*ter 5 javascript jquery jquery-mobile
我遇到了一个奇怪的问题,但这并不奇怪,因为我是一名JavaScript新手。基本上,我正在创建一个简单的高低纸牌游戏。(抽两张牌,最高获胜)。无论如何,下面的代码。
该程序的基本流程非常简单。我选择2个随机数(1-52)。这些号码将映射到相应的卡。(即1号是黑桃王牌,37号是球杆的顶杆,依此类推)。无论如何,在抽出卡片后,程序将显示相应的卡片并确定获胜者。在所有这些操作结束时,我有一个警报出现,并告诉抽奖的获胜者,并询问用户是否要再次玩。
我遇到的问题是:即使程序应该已经显示了卡的图像并将结果输出到文本区域,警报框仍会在任何实际出现之前显示,并且永远不会显示卡或结果。有任何想法吗?到目前为止,我正在发布所有代码,我们将不胜感激。提前致谢。
function drawCards() {
var oppCard = randNumber();
var customerCard = randNumber();
while (oppCard == customerCard) {
customerCard = randNumber();
}
var oppCardName = displayCard(oppCard, "oppImage");
var customerCardName = displayCard(customerCard, "custImage");
var result2 = "Your card was: " + customerCardName;
var result1 = "The opponent's card was: " + oppCardName;
var result3 = determineWinner(oppCard, customerCard);
var result4 = result3 + '\n' + result1 + '\n' + result2;
$("#textareaRes").text(result4);
playAgain(result3);
}
function determineWinner(oppsCard, customersCard) {
var oppValue = oppsCard % 13;
var customerValue = oppsCard % 13;
var winnerString = "";
if (oppValue == 0) {
oppValue = 13;
}
if (customerValue == 0) {
customerValue = 13;
}
if (oppValue == customerValue) {
winnerString = "You Tied.";
}
else if (oppValue > customerValue) {
winnerString = "You Lose.";
}
else if (oppValue < customerValue) {
winnerString = "You Win!!";
}
return winnerString;
}
function randNumber() {
var min = 1;
var max = 52;
var random = Math.floor(Math.random() * (max - min + 1)) + min;
return random;
}
function playAgain(resultString) {
if (resultString == "You Lose." || resultString == "You Win!!") {
alert(resultString);
var conf = confirm("Play Again?");
if (conf == true) {
$("#textareaRes").text("");
document.getElementById("custImage").src="./cardImages/default.png";
document.getElementById("oppImage").src="./cardImages/default.png";
}
else {
window.location = "#mainMenuPage";
}
}
else {
alert(resultString);
alert("Try Again.");
$("#textareaRes").text("");
document.getElementById("custImage").src="./cardImages/default.png";
document.getElementById("oppImage").src="./cardImages/default.png";
}
}
Run Code Online (Sandbox Code Playgroud)
因此,我没有将此处的显示卡功能代码放在此处,只是因为测试它的时间特别长。对于所有52个随机数来说,这只是一个巨大的转换案例。最终的成品实际上是从XML文件提取的,但是我只是出于测试目的而使用了它。(如果由于某种原因,您需要查看显示卡功能,请告诉我,然后我可以发布它。)总之,回顾一下,在drawCards()函数中进行的最后一次调用是playAgain函数。运行此代码后,结果或卡图像均不会显示。它只是直接跳到playAgain函数所要求的警报。这可能是一个很笨拙的问题,但是我对此有些困惑。因此,您能提供的任何帮助将不胜感激。谢谢。
[编辑:它实际上在计算机的浏览器中正常运行。但是,此问题发生在手机或平板电脑等移动设备上。所以这可能是我在这里做错的事情。任何帮助是极大的赞赏。]
只要您的 Javascript 代码正在运行,浏览器中的更改就不会显示出来。
浏览器是事件驱动的,因此更改 DOM 中的元素不会立即显示更改,而是触发事件以重绘元素。当您的函数完成运行时,浏览器将处理任何挂起的事件并显示更改。
因此,在构建应用程序时,您必须使用相同的方法,以便浏览器有机会显示更改。
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |