String Replace
Bom Dia Pessoal!
Tenho o seguinte trecho de código HTML:
<ul id="scoreboard">
<li id="sb-score"><span></span> %label%: %value%</li>
<li id="sb-level"><span></span> %label%: %value%</li>
<li id="sb-continue"><span></span> %label%: %value%</li>
</ul>
E a função js:
// Para conhecimento
// sb.html.score.id retorna ex: sb-score
// sb.html.score.label retorna ex: Score
// getScore() retorna ex: 10 ou 20 ou 30 etc...
function addHtml(elm) {
var sb = config.scoreboard();
var content = document.getElementById(sb.html.score.id).innerHTML;
content = content.replace('%label%', sb.html.score.label);
content = content.replace('%value%', getScore());
document.getElementById(sb.html.score.id).innerHTML = content;
console.log(getScore());
}
Qual o problema?
Quando o código entra em execução ele faz o replace certinho. Porém apenas a primeira vez. No segundo seguinte, quando o score é incrementado pelo resto do código ele faz uma nova chamada à addHtml(elm).
Através do console.log(score) recebo o valor incrementado corretamente, mas na tela, o valor continua o antigo.
Só para terem uma noção da chamada de addHtml(elm) segue trecho do código:
function addScore(val) {
var sb = config.scoreboard();
val == undefined ? score += sb.start.scoreIncrement : score += val;
if(score >= scoresNextLevel)
addLevel();
addHtml('score');
}
E uma imagem da tela:
Alguém sabe como resolver isso?
obrigado desde já pessoal!
Discussão (1)
Carregando comentários...