我有一个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代码以简化它。
答案 0 :(得分:5)
您不需要加载jQuery两次。在这种情况下会发生什么,是第二次用评级原型方法覆盖前一个。
这应该适合你:
<script src="js/jquery-latest.js"></script>
<script src="js/jquery.rating.js"></script>
另一个问题是您没有正确初始化插件。它应该是:
$('.rating-star').rating().rating('select', avgRating);
...首先初始化,然后调用select
方法。