2015-09-18 3 views
0

Im новое для javascript и попытка кодирования пинг-понга, следуя устаревшему/полу-ошибочному руководству. В файле HTML есть сообщение, которое эта функция записывает после того, как кто-то забьет точку.строка href с onclick внутри

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 Закрыть» и одновременно вызвать 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

здесь 'return 'X' вы забыли закрыть тег' a' – Grundy

ответ

0

гораздо проще, чтобы вернуться ложным OnClick:

scorePop += "<a href=\"#\" onclick=\"return prepNewGame('left');\">X Close</a>"; 

и prepNewGame функции:

function prepNewGame(side) { 
    ..... 
    ..... 
    return false; 
} 
0

Предпоследняя строка кода пытается начать новую игру, при нажатии. Он возвращает false в событии клика, чтобы предотвратить перезагрузку страницы.

javascript:return false; 

Я чувствую, что проблема может заключаться в отводящей двойных кавычках, "\"javascript:return false="". Попробуйте использовать что-то по строкам;

scorePop += "<a href='#' onclick='return prepNewGame(\"left\");">X Close</a>'; 
Смежные вопросы