这是我目前拥有的代码。
if (playerCode.length === 4) {
$("div.codeOption, #inGameInstructions").css("display", "none");
for (i = 0; i < playerCode.length; i++) {
if (playerCode[i] === "red") {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#B30C15; width:20px; height:20px; border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
} else if (playerCode[i] === "green") {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#0D822C; width:20px; height:20px; border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
} else if (playerCode[i] === "orange") {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#E86E02; width:20px; height:20px; border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
} else if (playerCode[i] === "yellow") {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#F2E311; width:20px; height:20px; border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
} else if (playerCode[i] === "blue") {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#0D1782; width:20px; height:20px;border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
} else {
$("#playersFinalCode").append("<li class= 'playerCodeChoice'>" + "<div style='background-color:#570D82; width:20px; height:20px;border-radius:5px; box-shadow: 2px 2px 2px #888888;'>"
"</div>" + "<br/>" + "</li>");
}
$(document).on("click", ".playerCodeChoice, #toMainMenu", function() {
$(".playerCodeChoice").remove();
});
}
}
它目前所做的是运行一个颜色数组,将每个元素(总共四个(放入一个有序列表中,其中一个元素对应于数组中的颜色。这就是它目前正在做的事情(例如(。这些真的是正方形,
1. [yellow]
2. [orange]
3. [yellow]
4. [blue]
现在,这在很大程度上是有效的,当我点击任何一个彩色方块时,以及当我返回主菜单时,列表都会清除,但当我再次选择四种新颜色时,列表并没有从它应该开始的地方开始。它会向下移动,从上一个列表结束的地方开始,每次我再次运行该过程时,它都会将列表越来越向下移动。关于是什么原因导致了这种情况,有什么想法吗?还有奖金问题。最终,我想把四种颜色显示为一个列表,10次,比如
1. [yellow], [orange], [yellow], [blue]
2. etc.
3. etc.
etc.
如果我想做这样的事情,会不会很简单,把它挂起来,这样就可以创建多个s(10(,因为最终我会希望计算机猜测玩家的颜色选择,然后把这些猜测显示在屏幕上。因此,我现在玩这个设置。非常感谢您的帮助。谢谢
如果你需要完整的图片,这是我正在做的。http://codepen.io/terratunaz/pen/pbuyA
<br>
不允许出现在<li>
内部。因此,浏览器将所有<br>
标记都放在<li>
元素之外。当执行$(".playerCodeChoice").remove()
时,它将删除所有<li>
s,但保留<br>
s。
解决方案是从JS中删除+ "<br/>"
。
顺便说一句,if/else
块中所有重复的代码都很麻烦。使用CSS类分配样式:
.playerCodeChoice div {
width:20px;
height:20px;
border-radius:5px;
box-shadow: 2px 2px 2px #888888;
}
.playerCodeChoice div.red {
background-color: #B30C15;
}
.playerCodeChoice div.green {
background-color: #0D822C
}
....
$("#playersFinalCode").append("<li class= 'playerCodeChoice'><div class='" + playerCode[i] + "'></div></li>");