以下に示すように、簡単な星評価スクリプトがあります。私の問題は、ユーザーが投票すると、投票を変更できないことです (気が変わって、送信する前に投票を変更したい場合)。私のスクリプトは次のようになります。
$(function() {
$('a').hover(
// Handles the mouseover
function() {
$(this).prevAll().andSelf().addClass('hoverstar');
$(this).nextAll().removeClass('visited');
},
// Handles the mouseout
function() {
$(this).prevAll().andSelf().removeClass('hoverstar');
$(this).nextAll('a').removeClass('hoverstar');
$(this).nextAll('a').removeClass('visited');
}
);
$('a').click(
function() {
$(this).prevAll('a').andSelf().addClass('visited');
$(this).nextAll('a').removeClass('visited');
}
);
});
スタイルシートは次のとおりです。
.rate_widget ul
{
background: url('star-white16.gif') repeat-x;
}
.rate_widget a.visited{
background: url('star-red16.gif') repeat-x;
}
.rate_widget a.hoverstar{
background: url('star-gold16.gif') repeat-x;
}
星は次のようにリンクとして表示されます。
<div class='rate_widget'>
<ul>
<li><a href='#' class='one-star' id="1">1</a></li>
<li><a href='#' class='two-stars' id="2">2</a></li>
<li><a href='#' class='three-stars' id="3">3</a></li>
<li><a href='#' class='four-stars' id="4">4</a></li>
<li><a href='#' class='five-stars' id="5">5</a></li>
</ul>
</div>