rating不是函数jquery插件错误

时间:2015-04-14 06:10:13

标签: javascript jquery jsp jquery-plugins

我有一个jsp页面。在那我正在尝试jquery星级评级。我正在使用此插件http://www.fyneworks.com/jquery/star-rating/。但JS错误就像TypeError:$(...)。rating不是函数这是我的JSP代码。

<div class="book-right" id="ajaxTest">
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/jquery.rating.js"></script>
    <script type="text/javascript" src="js/jquery-latest.js"></script>
    <script type="text/javascript" src="js/jquery.tablesorter.js"></script>
    <script type="text/javascript" src="js/jquery.tablesorter.min.js"></script>
    <--table + some intermediate loop code --->
        <c:forEach var="leg" items="${option.legs}" varStatus="loopCounter3">
            <div>
                <input type="radio" name="rating-${loopCounter2.index}" value="1" class="rating-star" />
                <input type="radio" name="rating-${loopCounter2.index}" value="2" class="rating-star" />
                <input type="radio" name="rating-${loopCounter2.index}" value="3" class="rating-star" />
                <input type="radio" name="rating-${loopCounter2.index}" value="4" class="rating-star" />
                <input type="radio" name="rating-${loopCounter2.index}" value="5" class="rating-star" />
            </div>
            <input type="hidden" id="avgRating" name="avgRating" value="${leg.courierProduct.rating}"></input>

            <script>
                var avgRating = $('#avgRating').val();
                $('.rating-star').rating('select', avgRating);
            </script>
        </c:forEach>
</div>

我删除了一些JSP代码以简化它。

1 个答案:

答案 0 :(得分:5)

您不需要加载jQuery两次。在这种情况下会发生什么,是第二次用评级原型方法覆盖前一个。

这应该适合你:

<script src="js/jquery-latest.js"></script>
<script src="js/jquery.rating.js"></script>

另一个问题是您没有正确初始化插件。它应该是:

$('.rating-star').rating().rating('select', avgRating);

...首先初始化,然后调用select方法。

演示: http://plnkr.co/edit/OIjbvkff27YdX4snKnB2?p=preview