jQuery正确执行但只进行一次更改

我有这个rails3应用程序,在每次用户选择分数…(提交表单。)时,我想要更新的弹出div中显示得分,计算得分并在AJAX中返回。 这有效,我可以在以下JavaScript中放置一个断点:

$('#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]和`encoded.scores [1]等于他们想要的。 jQuery的其余部分执行,第一行得分总计工作正常,它确实会改变那个分数……随后新商店的任何时候,它只是不更新​​或不再替换…

不仅如此,还有按钮

  

值不会随着上面的jquery甚至是.prop而改变我不知道为什么这样做会让人感到不安…这里是视图中的其余代码:

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

所以我认为我做了一些愚蠢的事情,一切都在执行,甚至是一些有效的工作(得分总数发生了变化,之后不再发生一次,并且得分弹出窗口永远不会改变……这与这篇文章有关:

jQuery Ajax只执行一次,但似乎每次都应该调用

??

编辑:我确实通过这样做得到了按钮:

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

(显然是因为它是一个html按钮)并且有效,尽管其余的代码只是第一次执行它的后续执行,它只是不会改变数据,也许我抓错了? 或者不用replaceWith正确地改变它?

您正在用其他东西替换整个表格单元格,因此在第一次没有表格单元格之后。

仅包含span标记中的动态值:

 Total Evaluation Score: <%= @document.score %> 

然后分配其内部文本:

 var $response = xhr.responseText; var encoded = jQuery.parseJSON($response); $('#lbDocumentScore').text(encoded.scores[0]);