1

jQuery、PHP、および MySQL を使用して 5 つ星評価システムを構築したいと考えています。このチュートリアルに従って作っているのですが、jQueryの部分でエラーが出てしまいます。PHP と MySQL は得意ですが、jQuery と Ajax についてはほとんど知識がありません。

jQuery コード:

    $(function(){

$('.star').mouseover(function (){
var star = $(this).index() 1;
$(this).parent().css("background-position","0" - (32 * star) "px");
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
$(this).css("background-position","0 -" (32 * originalresult) "px");
}); 

}); 

このための HTML:

<div class="star-rating" id="rating1result0">
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
<div class="star"></div>
</div>
<div class="result">
<span style="color:green">0</span> (0)
</div>

CSSは次のとおりです。

.star-rating {
    width: 80px;
    height: 16px;
    float: left;
    background: url(_ls-global/images/layout-images/urating.png);
    cursor: pointer;
}
.star {
width:16px;
height:16px;
float:left;
}
.result {
float:left;
height:16px;
color:#454545;
margin-left:5px;
line-height:110%;
} 

このようにコードを変更してみましたが、予期しない結果になりました。

    $(function(){

$('.star').mouseover(function (){
var star = $(this).index()+1;
$(this).parent().css("background-position","32px");
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
$(this).css("background-position","32px");
}); 

}); 

誰かがコードの何が間違っているのか教えてください。

4

3 に答える 3

2

最後にそれを手に入れました。

    $(function(){

$('.star').mouseover(function (){
var star = $(this).index()+1;
var x =(32 * star);
$(this).parent().css("backgroundPosition","0% "  +(-x)+ "px");  
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
var y =(32 * originalresult);
$(this).css("background-position","0%" +(-y)+ "px");
}); 

}); 

これが同じ問題を抱えている他の人に役立つことを願っています。

于 2012-07-04T14:28:42.020 に答える
1
$(function(){

$('.star').mouseover(function (){
var star = $(this).index();
var newvalue =0-(32 * star);
$(this).parent().css("background-position",newvalue+" px");
});

$('.star-rating').mouseout(function (){
var originalresult = $(this).attr('id').split('result')[1];
var newvalue =0 -(32 * originalresult);
$(this).css("background-position",newvalue+"px");
}); 

}); 

これを試して。

于 2012-07-04T11:59:08.183 に答える
0
var star = $(this).index() 1;

数字の 1 はそこで何をすることになっていますか? それは解析エラーであるはずです。

于 2012-07-04T10:45:23.010 に答える