Я написал сообщение несколько часов назад, где у меня есть несколько интересных ответов, но я не понимаю все, и теперь я не могу использовать этот пост. Поэтому я создаю одно новое.callback все еще не работает
я подоконник есть проблема с обратным вызовом в этом коде:
<div id='temp'></div>
<div id='points'></div>
<div onClick ="play(1, 1)" id='click'>clickclickclick</div>
<script>
play(function (addpoints) {
document.getElementById('temp').innerHTML = addpoints;
}());
function play (choosecolor, randescolor) {
if (choosecolor == randescolor) {
if (document.getElementById('points').innerHTML === '') {
document.getElementById('points').innerHTML=100;
}
else {
var points = function (allpoints) {
var addpoints = parseInt(allpoints) + 100;
callback(addpoints);
document.getElementById('points').innerHTML=addpoints;
}
}
points(document.getElementById('points').innerHTML);
}
}
Я uderstand, что функция обратного вызова не посылает уаг addpoint с его значением для второй функции, поэтому во второй функции addpoints не определено. Но я не понимаю, почему addpoints теряют свою ценность (но я могу показать его в div), какой callback делать и как это исправлять. Некоторый пользователь дал мне совет, что я должен выбрать choosecolor (addpoints); вместо callback (addpoints); но он все еще не работает.
ли DOM готов, когда вы вызываете 'играть()' ? – George
Этот код очень запутан. Вы по сути называете 'play (undefined, undefined)', который запускает ваш 'if (choosecolor == randescolor)', предположительно случайно. Даже если вы перешли в 'choosecolor', вы никогда его не исполняете. И если 'choosecolor' не должен быть обратным вызовом, вы должны хотя бы вернуть что-то из своей анонимной функции. – CodingIntrigue
В этом примере есть части вашего кода, которые явно отсутствуют. Также вы вызываете обратный вызов в коде. Я думаю, что два параметра для воспроизведения должны быть функциями обратного вызова, но вы никогда не передаете функцию обратного вызова. Вы передаете одно значение для воспроизведения, которое в этом случае не определено, поскольку оно исходит из вызова функции void. –