我正在学习jQuery动画功能,并且正在编写一个小型游戏,用户必须在设置的时间范围内单击移动的div。游戏处于扭曲状态,以便当时间到了时,将显示最终分数,并且div为用户提供了一个选项,如果用户单击它,则可以“再次开始”。

问题在于游戏结束时显示的“再次开始” div

这是函数:

function GameOver(){
    $(".game-over").show();
    $("#total-score").text(points);
    $(".anidiv").hide();
    $("#start-again").on("click", Reset());
}


并且div $("#start-again")引用:

<div id="start-again" class="game-over">
    <img src="Pictures\tryagain.png" id="tryagain">
</div>


通过调试,我发现在调用GameOver()时,将忽略$("#start-again").on("click", Reset());的第一个参数,并调用Reset()。换句话说,无需用户单击Reset()即可自动调用$('#start-again)。因此,我首先要解决的问题是将$("#start-again").on("click", Reset());放在$(document).ready()中,但是该功能也可以工作,用户可以单击它,但不会调用Reset()

显然,该问题与脚本中$("#start-again").on("click", Reset());的位置有关,但是除了弄清楚上面的内容之外,我不太确定从这里到哪里。

我已经在JSFiddle上在这里发布了问题

最佳答案

我为你更新了小提琴。问题出在您的Reset函数上

它应该是

$("#start-again").on("click", Reset);


https://jsfiddle.net/6vLscpt0/1/

关于javascript - jQuery:绕过.on()函数中的“单击”参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33977912/

10-13 00:16