【发布时间】:2013-06-02 10:42:51
【问题描述】:
我已经写了一个评分系统星级评分系统的代码,一切正常,代码很好
<script type="text/javascript">
(function($){
$(document).ready(function() {
var $option = $('.option');
var $fruit = $('.fruit-name');
var $last;
var parent
$option.click(function() {
parent=$(this).parents('.comment-form-rating');
$('.fruit-name',parent).val(this.innerHTML)
})
$(".starr1").hover(function(){
parent=$(this).parents('.comment-form-rating');
$('.starr1',parent).css('color','gold')
},function(){
$(".starr1").css("color","#ddd");
});
$(".starr2").hover(function(){
parent=$(this).parents('.comment-form-rating');
$('.starr1',parent).css('color','gold')
$('.starr2',parent).css('color','gold')
},function(){
$(".starr1").css("color","#ddd");
$(".starr2").css("color","#ddd");
});
$(".starr3").hover(function(){
parent=$(this).parents('.comment-form-rating');
$('.starr1',parent).css('color','gold')
$('.starr2',parent).css('color','gold')
$('.starr3',parent).css('color','gold')
},function(){
$(".starr1").css("color","#ddd");
$(".starr2").css("color","#ddd");
$(".starr3").css("color","#ddd");
});
$(".starr4").hover(function(){
parent=$(this).parents('.comment-form-rating');
$('.starr1',parent).css('color','gold')
$('.starr2',parent).css('color','gold')
$('.starr3',parent).css('color','gold')
$('.starr4',parent).css('color','gold')
},function(){
$(".starr1").css("color","#ddd");
$(".starr2").css("color","#ddd");
$(".starr3").css("color","#ddd");
$(".starr4").css("color","#ddd");
});
$(".starr5").hover(function(){
parent=$(this).parents('.comment-form-rating');
$('.starr1',parent).css('color','gold')
$('.starr2',parent).css('color','gold')
$('.starr3',parent).css('color','gold')
$('.starr4',parent).css('color','gold')
$('.starr5',parent).css('color','gold')
},function(){
$(".starr1").css("color","#ddd");
$(".starr2").css("color","#ddd");
$(".starr3").css("color","#ddd");
$(".starr4").css("color","#ddd");
$(".starr5").css("color","#ddd");
});
});
})(jQuery);
</script>
但是我必须为我的星星定义一个点击函数,当用户点击星星 5 时,所有星星都会变成红色 --
我是这样定义的
$(".starr5").click(function () {
parent = $(this).parents('.comment-form-rating');
$('.starr1', parent).css('color', '#FF7777')
$('.starr2', parent).css('color', '#FF7777')
$('.starr3', parent).css('color', '#FF7777')
$('.starr4', parent).css('color', '#FF7777')
$('.starr5', parent).css('color', '#FF7777')
});
这就是问题所在 - 现在星形变为红色,但在鼠标离开时它们再次变为灰色,鼠标悬停在黄色功能上时开始工作 - 完全困惑如何编写进一步的代码使其工作。
【问题讨论】:
-
就像 Chris Coyier 所说的“只做一个 JSFiddle”jsfiddle.net
-
请分享您的代码的 jsFiddle。另外,您正在使用哪个浏览器?当调试器控制台保持打开状态时,我在 v26 的 Chrome 中遇到了类似的问题。
-
你能分享你的html语法吗
-
jquery 的两个选项冲突-当我鼠标离开时悬停功能触发,从而使红色星星消失。