正如标题所指定的那样,我在我的一个表单模板中添加了一个raty star插件(只执行了一次)但由于某种原因,该脚本会将星号注入两次。
<div id="star-rate" style="cursor: pointer;">
<img alt="1" src="/assets/star-off.png" title="bad">
<img alt="2" src="/assets/star-off.png" title="poor">
<img alt="3" src="/assets/star-off.png" title="regular">
<img alt="4" src="/assets/star-off.png" title="good">
<img alt="5" src="/assets/star-off.png" title="gorgeous">
<input name="review[rating]" type="hidden">
<img alt="1" src="/assets/star-off.png" title="bad">
<img alt="2" src="/assets/star-off.png" title="poor">
<img alt="3" src="/assets/star-off.png" title="regular">
<img alt="4" src="/assets/star-off.png" title="good">
<img alt="5" src="/assets/star-off.png" title="gorgeous">
<input name="review[rating]" type="hidden"></div>
我没有手动输入,实际上正在按照一个似乎正确渲染这个渲染的教程。下面是我在骨干中编写的相同模板中运行的脚本。
<div class="form-group">
<label for="review-rating">Rating: </label>
<div id="star-rate"></div>
</div>
<script>
$('#star-rate').raty({
path: '/assets/',
half: true,
start: 0,
scoreName: 'review[rating]'
});
</script>
我已经看到这个问题在2011年之前发布过一次,但对我没有帮助。如果有人对raty的双重渲染问题有任何想法,请帮忙。我曾尝试更改星级数量和围绕#star-rating div的div,但它也没有用。
答案 0 :(得分:0)
通过添加第一行,您可以告诉插件在您调用渲染两次时销毁任何已渲染的星星。这是使用主干的常见问题,因为页面没有被完全刷新,它只是呈现两次。还有一个onRender模式对任何有/将会遇到此问题的人都非常有用。
this.$('#star-rate').raty('destroy');
this.$('#star-rate').raty({
path: '/assets/',
half: true,
score: 3,
scoreName: 'review[rating]'
});