gpt4 book ai didi

jQuery 星级评级插件可清除评级星级点击的评级?

转载 作者:行者123 更新时间:2023-12-01 06:58:58 26 4
gpt4 key购买 nike

这令人困惑,但我似乎找不到一个像样的 jQuery 星级评级插件,可以在您单击评级星级时清除评级(例如:您评级 3 颗星,再次单击第三颗星,然后评级被删除)。我一直在寻找在星星左侧有那个愚蠢的“清除评级”按钮的插件。当我使用原型(prototype)时,我使用 ratingbox,它运行良好,但我找不到 jQuery 等效项。

如果有任何建议,我将不胜感激!

最佳答案

如果您不需要任何特殊功能,可以使用我的代码。如果需要,应该很容易将其转换为插件。

如果不需要悬停跟踪效果,只需删除 mouseentermouseleave 事件即可。

设置的评级保存在容器div上的数据属性中,您可以通过$('. rating').data(' rating')访问它。

查看现场演示,其中包含来自互联网的一些随机图像:http://jsfiddle.net/abPFF/1/

HTML:

<div class="rating" data-rating="3">
<div></div><div></div><div></div><div></div><div></div>
</div>

CSS:

.rating { display:inline-block; padding:0px; }
.rating div { display:inline-block; width:48px; height:48px; margin:0px; background-image: url('star-off.png');}

.selected { background-image: url('star.png') !important; }
.highlighted { background-image: url('star.png') !important; }

Javascript:

function ShowRating($element, rating){
$stars = $element.find('div');
$stars.removeClass('selected highlighted');
rating = parseInt(rating);
if(rating < 1 || rating > $stars.length) return;

$stars.eq(rating-1).addClass('selected')
.prevAll().addClass('highlighted');
return;
}

$('.rating').each(function(){
var $this = $(this);
ShowRating($this, $this.data('rating'));
}).bind({
mouseleave: function(){
var $this = $(this);
ShowRating($this, $this.data('rating'));
}
}).find('div').bind({
mouseenter: function(){
var $this = $(this);
ShowRating($this.parent(), $this.index() + 1);
},
click: function(){
var $this = $(this);
var $parent = $this.parent();
var idx = $this.index() + 1;
if($parent.data('rating') == idx){
// Remove rating
ShowRating($parent, 0);
$parent.data('rating', 0);
} else {
// Set rating
ShowRating($parent, idx);
$parent.data('rating', idx);
}
}
});

关于jQuery 星级评级插件可清除评级星级点击的评级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916844/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com