Raty插件渲染星两次

时间:2015-08-14 02:58:31

标签: ruby-on-rails backbone.js raty

正如标题所指定的那样,我在我的一个表单模板中添加了一个raty star插件(只执行了一次)但由于某种原因,该脚本会将星号注入两次。

    <div id="star-rate" style="cursor: pointer;">
    <img alt="1" src="/assets/star-off.png" title="bad">
    &nbsp;
    <img alt="2" src="/assets/star-off.png" title="poor">
    &nbsp;
    <img alt="3" src="/assets/star-off.png" title="regular">
    &nbsp;
    <img alt="4" src="/assets/star-off.png" title="good">
    &nbsp;
    <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">
    &nbsp;
    <img alt="2" src="/assets/star-off.png" title="poor">
    &nbsp; 
    <img alt="3" src="/assets/star-off.png" title="regular">
    &nbsp;
    <img alt="4" src="/assets/star-off.png" title="good">
    &nbsp;
    <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,但它也没有用。

1 个答案:

答案 0 :(得分:0)

通过添加第一行,您可以告诉插件在您调用渲染两次时销毁任何已渲染的星星。这是使用主干的常见问题,因为页面没有被完全刷新,它只是呈现两次。还有一个onRender模式对任何有/将会遇到此问题的人都非常有用。

    this.$('#star-rate').raty('destroy');
      this.$('#star-rate').raty({
      path: '/assets/',
      half: true,
      score: 3,
    scoreName: 'review[rating]'
    });