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销毁元素并重新初始化另一个元素 – 复制评级显示。