我是javascript的新手,并尝试编写ping pong,遵循过时/半错误的指南。 HTML文件有一个消息框,该函数在有人得分之后写入。
function score(side) {
clearInterval(t);
msgBox = document.getElementById('messageBox');
msgBox.style.visibility = "visible";
scorePop = "<p> Point for the "+side+" side!<br/> ";
scorePop += "To serve the ball again, press \"s\" after closing this pop-up.</p>";
scorePop += "<a href="\"javascript:return false="" onclick="\prepNewGame('"left"');return"X Close</a>";
msgBox.innerHTML = scorePop;
}
传递的参数是“左”或“右”形式的获胜方。我知道问题出在第二行到最后一行代码中,因为如果我将其注释掉,我可以运行其他所有代码。我相信字符串中的引用有问题但是我已经盯着这个太多时间了。虽然我并不完全确定倒数第二行的代码是什么意思,但我相信它的意思是出现在msgBox中,并带有一个“X Close”按钮并同时提示prepNewGame。关闭后,用户可以按“s”开始新游戏。以下是prepNewGame以防万一。
function prepNewGame(side) {
t=0;
msgBox.style.visibility='hidden';
theBall.style.top = "10px";
if(side == "left") {
theBall.style.left = "25px";
rpadl.style.top = "5px";
lpad.style.top = "5px";
} else {
theBall.style.left = (winWidth-40) + "px";
rpadl.style.top = "5px";
lpadl.style.top = "5px";
}
}
答案 0 :(得分:0)
更简单的是返回false onclick:
scorePop += "<a href=\"#\" onclick=\"return prepNewGame('left');\">X Close</a>";
并在prepNewGame
函数中:
function prepNewGame(side) {
.....
.....
return false;
}
答案 1 :(得分:0)
第二行到最后一行代码尝试在点击时启动新游戏。它在click事件上返回false,以防止重新加载页面。
javascript:return false;
我觉得问题可能在于双引号"\"javascript:return false=""
的转义。尝试使用类似的东西;
scorePop += "<a href='#' onclick='return prepNewGame(\"left\");">X Close</a>';