时间:2015-09-18 10:50:03

标签: javascript string onclick href

我是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";
    }
}

2 个答案:

答案 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>';