JQuery评级插件不适用于KO循环

时间:2015-01-30 19:52:30

标签: javascript jquery css knockout.js jquery-bar-rating

我尝试使用两个条形评级插件,其中一个发现here:另一个here。使用第一个列出的评级插件,当我鼠标悬停在星星上时,它们根本不起作用(意味着所选星星的颜色不会改变),而在KnockoutJS循环中,如果在外面,它可以完美地运行。示例代码:

<ul data-bind="foreach: articles">    
    <li>
        <input type="radio" name="1" class="star" />
        <input type="radio" name="1" class="star" />
        <input type="radio" name="1" class="star" />
        <input type="radio" name="1" class="star" />
        <input type="radio" name="1" class="star" />

        <script type="text/javascript">
            $(function(){ // wait for document to load
                $('input.star').rating();
            });                 
        </script>
    </li>
</ul>
<!-- Works -->

我的CSS已经设置好,我甚至尝试在插件内部/外部移动插件激活脚本,没有任何内容。

修改 我想问题是,如何在生成新内容后将插件重新应用于KnockoutJS?

1 个答案:

答案 0 :(得分:0)

问题是插件在KnockoutJS在页面上呈现元素之前正在运行。正如我所发现的,修复此问题的方法是检查元素的设置时间,然后重新附加插件。

这应该添加到循环中。

foreach: { data: articles, afterRender: rating_bind } //rating_bind is the function that will map the plugin to the new elements.