0

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

    <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 年之前发布过一次,但它对我没有帮助。如果有人对比率的双重渲染问题有任何想法,请提供帮助。我尝试更改星数和#star-rating div 周围的div,但它也没有用。

4

1 回答 1

0

通过添加第一行,你告诉插件如果你调用 render 两次就销毁所有渲染的星星。这是使用主干的常见问题,因为页面没有被完全刷新,它只是呈现两次。还有一个 onRender 模式对于任何有/将有这个问题的人来说对 Backbone 非常有帮助。

    this.$('#star-rate').raty('destroy');
      this.$('#star-rate').raty({
      path: '/assets/',
      half: true,
      score: 3,
    scoreName: 'review[rating]'
    });
于 2015-08-14T16:43:54.003 回答