私は、JS をよりよく学習するために行っているゲームのコードを少し書いていますが、問題に直面しました。jQuery ライブラリを使用してアニメーションを実行しています。
私がやろうとしていること(//フェードアウトテキストコメントを参照):
<p>
プレイヤーがスペースバー キーを押したときに、一意の ID を持つ 3 つのタグを非表示にしたいと考えています。私が現在持っているコードは(一種の)機能しますが、問題は、<p>
削除したいタグごとにスペースバーを1回押す必要があることです。text() メソッドを使用すると、スペースバーを 1 回押すだけで、<p>
タグ内のすべてのテキストを削除できます。
これが私のコードです:
$(document).ready(function() {
$("body").keypress(
function(event) {
if (event.which == 32) {
if (operator === "+") {
result = parseInt(firstTerm) + parseInt(secondTerm);
}
else if (operator === "-") {
result = parseInt(firstTerm) - parseInt(secondTerm);
}
//reset the player's current expression
firstTerm = "";
operator = "";
secondTerm = "";
//Fade out the text
$("p#term1, p#operator, p#term2 ").fadeToggle("slow");
//$("p#term1, p#operator, p#term2 ").text("");
//clear the board of any selections
for (var i = 0; i < tilesSelected.length; i++) {
$("div#" + tilesSelected[i]).removeClass("tileselected");
}
//check to see if the player has scored a point
if (result === goalNum) {
alert("You just scored 1 point!");
score++;
goalNum = randNumXtoY(1, 30);
$("div#targetnum").text(goalNum);
}
alert(result);
}
});
});
html コードは次のとおりです。
<body>
<h1>This is my game. Yay!</h1>
<div id="container">
<div id="currentnum" class="currentstatus">
<p id="term1" class="x"></p>
<p id="operator" class="x"></p>
<p id="term2" class="x"></p>
</div>
<div id="targetnum" class="currentstatus">
<script type="text/javascript">
document.write("<p>" + goalNum +"</p>")
</script>
</div>
</div>
</body>