我可能在这里完全愚蠢,为此我道歉但我有点生疏。
我正在使用一个评级系统,默认使用defaultUL和LI css样式,但这些影响了网站的其余部分,因此我将它们定义为不同的类名:
ul.ratings li.ratings
脚本根据mysql值更新样式,但由于某些原因,我似乎无法正确显示jQuery,并且星标显示没有评级且不更新。
有人可以帮我理解这个吗?
$(document).ready(function() {
$('.post li').mouseout(function() {
$(this).siblings().andSelf().removeClass('selected highlight')
}).mouseover(function() {
$(this).siblings().andSelf().removeClass('selected');
$(this).prevAll().andSelf().addClass('highlight');
})
$('.post li').click(function() {
$(this).prevAll().andSelf().addClass('selected');
var parent = $(this).parent();
var oldrate = $('li.selected:last', parent).index();
parent.data('rating', (oldrate + 1))
data = new Object();
data.id = parent.data('id');
data.rating = parent.data('rating')
$.ajax({
url: "add_rating.php", // path of the file
data: data,
type: "POST",
success: function(data) {
alert('Your rating is accepted.');
}
});
})
/* reset rating */
jQuery('.post ul').mouseout(function() {
var rating = $(this).data('rating');
if (rating > 0) {
$('li:lt(' + rating + ')', this).addClass('selected');
}
})
})
html如下:
<div class="post">
<ul class="rating" data-id = "<?php echo $row['fileID']; ?>" data-rating ="<?php echo $row["rating"]; ?>">
<?php
for($i=1; $i<=5; $i++)
{
$selected = "";
if(!empty($row["rating"]) && $i<=$row["rating"])
{
$selected = "selected";
}
?>
<li class="rating <?php echo $selected; ?>">★</li>
<?php
}
?>
</ul>
</div>