jQuery s’exécute correctement mais ne change qu’une fois

J’ai cette application rails3 qui affiche un score dans un div contextuel que je souhaite mettre à jour chaque fois qu’un utilisateur sélectionne le score … (soumet le formulaire.) Côté serveur, le score est calculé et renvoyé en AJAX. Cela fonctionne, je peux mettre un point d’arrêt dans le code JavaScript suivant:

$('#eval_form') .bind("ajax:beforeSend", function (evt, xhr, settings) { xhr.setRequestHeader('accept', '*/*;q=0.5, ' + settings.accepts.script) }) .bind("ajax:success", function (evt, data, status, xhr) { var $response = xhr.responseText var encoded = jQuery.parseJSON($response) $('#scoretotal').replaceWith('Total Evaluation Score: ' + encoded.scores[0]) //also change button text $('#score-popup').attr('value', 'testing value') }); }); 

encoded.scores[0] et `encoded.scores [1] correspondent à ce qu’ils veulent. Le rest de jQuery s’exécute, la première ligne avec scoretotal fonctionne bien, cela va effectivement changer ce score … UNE FOIS les fois suivantes avec de nouveaux magasins, cela ne met plus à jour ou ne remplace plus …

Non seulement cela mais le bouton

  

La valeur ne change pas avec le jQuery ci-dessus, ni même le .prop. Je ne comprends vraiment pas pourquoi cela se comporte de façon aussi dégoûtante … voici le rest du code de la vue:

 
x ...etc...
OVERALL EVALUATION RATING
Total Evaluation Score:

Je pense donc que je fais quelque chose de stupide, que tout est exécuté, même en quelque sorte (le score scoretotal change, une fois plus, et une partition popup ne change jamais … est-ce que cela a un rapport avec ce post:

jQuery Ajax ne s’exécute qu’une fois, mais semble appeler chaque fois qu’il le devrait

??

EDIT: J’ai obtenu le bouton de travail en faisant ceci:

  $('#score-popup').html(encoded.scores[0]) 

(apparemment parce que c’est un bouton html) et cela fonctionne, même si le rest du code ne fonctionne que la première fois qu’il est exécuté, les suivants ne changent pas les données, peut-être que je récupère la mauvaise chose? ou ne pas le changer correctement avec le replaceWith?