Jquery 今天头疼。我现在正在尝试在我的 jquery 中结合悬停和单击事件,对悬停功能的最新编辑取消了我的单击事件,我可以看到原因(我认为)。删除类覆盖了我的点击事件。
我想要实现的是,当我将鼠标悬停在一颗星上时,所有兄弟姐妹都被突出显示,基本上跟随鼠标,然后当我决定选择一颗星时,我应该能够点击它,它的所有兄弟姐妹加上我点击的那个都有应用的 addClass 方法
到目前为止我有什么
/* Hover Function */
$(document).ready(function(){
$('.ratings li').hover(function(){
$(this).prevAll().andSelf().addClass('goldstar');
}, function() {
$(this).prevAll().andSelf().removeClass('goldstar');
});
});
/* Click Function */
$(document).ready(function(){
$('.ratings li').click(function(){
$(this).prevAll().andSelf().addClass('goldstar');
});
});
/* Click functions to add a value */
$(document).ready(function(){
$('#firstStar').click(function(){
$('#hiddenRating').val(1);
});
});
$(document).ready(function(){
$('#secondStar').click(function(){
$('#hiddenRating').val(2);
});
});
$(document).ready(function(){
$('#thirdStar').click(function(){
$('#hiddenRating').val(3);
});
});
$(document).ready(function(){
$('#fourthStar').click(function(){
$('#hiddenRating').val(4);
});
});
$(document).ready(function(){
$('#fifthStar').click(function(){
$('#hiddenRating').val(5);
});
});
表格
<%= form_for @rating do |f| %>
<%= f.hidden_field :ratings, :id => "hiddenRating" %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
<div class="ratings">
<ul>
<li id="firstStar"></li>
<li id="secondStar"></li>
<li id="thirdStar"></li>
<li id="fourthStar"></li>
<li id="fifthStar"></li>
</ul>
</div>
现在我知道必须有更好的方法来做到这一点,我有很多重复的代码,但我正在学习并想知道一些方法来重新考虑这一点。有没有办法将 .val 方法组合成一个?
关于悬停和单击功能,我了解您可以使用 on 方法并通过悬停和单击?虽然不知道如何实现这个
任何帮助表示赞赏,
编辑
谢谢