我想要实现的是,我想让它像星级评级一样工作。当你输入鼠标星变为黄色时,当你离开鼠标它变成灰色然后如果你再次点击它变成黄色。 没有得到如何实现它,我已经添加了代码,以显示我到目前为止尝试了什么。
$(".na").hover(
function () {
$(this).addClass("clickstar");
},
function () {
$(this).removeClass("clickstar");
}
);
$(".na").on("click",function(){
$(this).toggleClass("clickstar");
});

.clickstar{
background: #00A1EF;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="na" style="border:1px solid #c0c0c0;border-radius:50%;width:115px;height:115px;display:inline-table;margin-right:5px;"></div>
&#13;
答案 0 :(得分:3)
您应该考虑使用2个不同的类.hoverstar
和.clickstar
,然后:
http://jsfiddle.net/xLxbw216/1/
每个案例都有一个类,这似乎更符合逻辑?
您还可以通过删除.hover()方法使其变得更简单,并使用CSS执行此操作:
http://jsfiddle.net/xLxbw216/8/
我可能会选择第二个,即使第一个解决方案看起来更“可读”。
答案 1 :(得分:1)
答案 2 :(得分:1)
你应该使用不同的类来永久开始和悬停星
我在JSfiddle
中创建了一个工作示例$(".na").hover(
function () {
var $this = $(this);
if (!$this.hasClass("permstar")) {
$this.addClass("clickstar");
}
},
function () {
var $this = $(this);
if (!$this.hasClass("permstar")) {
$(this).removeClass("clickstar");
}
}
);
$(".na").on("click",function(){
$(this).toggleClass("permstar");
});
答案 3 :(得分:1)
在悬停事件中添加/删除类与点击事件相冲突,因此我已将悬停功能移至css
<强>的CSS:强>
.clickstar{
background: #00A1EF;
}
.na:hover{
background: #00A1EF;
}
现场演示:
http://jsfiddle.net/dreamweiver/xLxbw216/7/
快乐编码:)