我尝试使用两个条形评级插件,其中一个发现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?
答案 0 :(得分:0)
问题是插件在KnockoutJS在页面上呈现元素之前正在运行。正如我所发现的,修复此问题的方法是检查元素的设置时间,然后重新附加插件。
这应该添加到循环中。
foreach: { data: articles, afterRender: rating_bind } //rating_bind is the function that will map the plugin to the new elements.