Bootstrap星级显示两次

我正在使用此插件在我的Bootstrap网站上显示星级。 以下是我将星级评定的模态代码的一部分(请参阅输入元素):

 

这是JS代码的一部分,我在其中动态设置星星的值:

 $.getJSON("getData.php?rating=" + user.id, function(data) { if (data) { $.each(data, function(key, val) { var reviews = val.tot_reviews; $('#avg').rating('update', val.average); $("#tot_reviews").html("(" + reviews + " reviews)").html(); }); } }); 

它似乎工作得很好,事实上,当我点击页面上的一个项目时,我得到了这个:

在此处输入图像描述

如果我再次点击相同的项目,我会得到这个:

在此处输入图像描述

我无法弄清楚为什么会这样。

一些检查指南:

  • 请注意,如果您已设置输入class=rating则插件将自动初始化,而无需您需要javascript代码进行初始化。 这在文档的使用部分 , 插件function以及文档的基本用法部分的第一个示例中提到。
  • 因此,如果您使用自己的javascript初始化插件,请不要设置class = rating ,否则您将有两个并行初始化导致不良影响。

此外,您还可以注意到:

  • 确保页面上的HTML输入元素具有唯一ID。 复制ID将产生不良影响并打破星级评级jquery插件,该插件使用元素ID进行初始化。 例如,如果您在页面上有多个评级应该是唯一的,例如等等。
  • 你的代码中有一个循环$.each …不确定那是做什么……但它正在更新评级。 确保您不会以某种方式使用ajax呈现的HTML销毁元素并重新初始化另一个元素 – 复制评级显示。