我有一个 jQuery 星级评分,它与 jQuery 1.7.2 完美配合,但在使用 jQuery 1.8.0 时返回语法错误。这是脚本:
/* ====== STAR RATING ========= */
jQuery(".stars.active a.star").hover(
function(){
var elemID = jQuery(this).parent('.stars').attr('id');
elemID = elemID.replace('id-', '');
if (od_readCookie('voted-'+elemID) == 'TRUE') {
jQuery(this).siblings('.ty').html('You already voted.');
} else {
var theClass = jQuery(this).attr('class');
theClass = theClass.match(/^s[0-9]/);
var starNum = theClass[0].replace('s', '');
var allClasses = '';
for(i=1;i<=starNum;i++) {
allClasses += ' .s'+i+', ';
}
jQuery(this).parent('.stars').children('.star').addClass('nogold');
jQuery(this).parent('.stars').children(allClasses).addClass('hover');
}
},
function(){
var elemID = jQuery(this).parent('.stars').attr('id');
elemID = elemID.replace('id-', '');
if (od_readCookie('voted-'+elemID) == 'TRUE') {
jQuery(this).siblings('.ty').html('');
} else {
jQuery(this).parent('.stars').children('.star').removeClass('nogold');
jQuery(this).parent('.stars').children('.star').removeClass('hover');
}
}
);
// actually add the rating
jQuery(".stars.active a.star").click(function(){
var elemID = jQuery(this).parent('.stars').attr('id');
elemID = elemID.replace('id-', '');
if (od_readCookie('voted-'+elemID) != 'TRUE') {
var theClass = jQuery(this).attr('class');
theClass = theClass.match(/^s[0-9]/);
var starNum = theClass[0].replace('s', '');
// keep the marking while rating updating
var allClasses = '';
for(i=1;i<=starNum;i++) {
allClasses += ' .s'+i+', ';
}
jQuery(this).parent('.stars').children('.star').addClass('nogold_voted');
jQuery(this).parent('.stars').children(allClasses).addClass('hover_voted');
jQuery(this).siblings('.ty').load('/od/wp-admin/admin-ajax.php?action=od_add_vote&id='+elemID+'&rating='+starNum);
}
});
我对 jQuery 不熟悉,所以任何人都可以解释一下,究竟是什么导致了这个问题?