Javascript评级系统
我不是javascript大师,所以请耐心等待我 我一直在寻找js的好评分,我跑去他的博客: 作者有一个演示,并提供了下载的代码 它看起来真的很不错,除了它没有保存颜色的例子。因此,一旦用户移开鼠标,颜色将恢复为黑色(默认颜色) 知道如何修复颜色吗?这里有一种方法——我仔细查看了示例代码中的Javascript评级系统,javascript,rating,Javascript,Rating,我不是javascript大师,所以请耐心等待我 我一直在寻找js的好评分,我跑去他的博客: 作者有一个演示,并提供了下载的代码 它看起来真的很不错,除了它没有保存颜色的例子。因此,一旦用户移开鼠标,颜色将恢复为黑色(默认颜色) 知道如何修复颜色吗?这里有一种方法——我仔细查看了示例代码中的script.js: 在animationTime var _rated = false; 颜色在这里被重置——看看我是如何使用\u rated变量的 // Restore all the rating
script.js
:
在animationTime
var _rated = false;
颜色在这里被重置——看看我是如何使用\u rated
变量的
// Restore all the rating to their original colours
if (_rated) $("#rating li a").stop().animate({ backgroundColor : "#333" } , animationTime);
然后在单击处理程序中:
//Prevent the click event and show the rating
$("#rating li a").click(function (e) {
e.preventDefault();
_rated = true;
//alert("You voted on item number " + ($(this).parent().index() + 1));
});
这将保持颜色高亮显示。当您刷新页面或重新运行上面的重置动画行时,它将被重置
希望这能有所帮助。我还没有看到你提到的博客的代码,但当用户单击任何显示警报的按钮时,似乎都会使用onclick()。因此,您可以使用一个全局变量来保存数字,并在其中添加代码以保持颜色。除了TimDog添加的代码之外: 添加
_rated = false;
到
每次用户将鼠标悬停在分级上时重置颜色。然后,当他们单击时,额定值设置为真,从而防止颜色变化
此外,我在表单中使用了一个隐藏的输入,它将包含评级的值。要执行此操作,请单击,如下所示:
$(".fav_rating li label").click(function(e) {
e.preventDefault();
_rated = true;
$("#item_fav_rating").val($(this).parent().index() + 1)
});
你有jQuery颜色插件吗?是的。我听从了蒂姆多格的建议。它不会再将颜色还原为黑色,但当我从高级别转到低级别时,它不会更改高级别的颜色。所以我想我必须将它们全部还原为默认颜色,然后再根据投票颜色将它们还原?您有更好的建议或解决方案吗?当他们从较高的评分变为较低的评分时,这是否有效?非常感谢您的建议。这非常有效,它可以防止颜色回到原来的颜色。然而,如果你从高收视率到低收视率,它不会将高收视率还原为原创。有什么建议吗?
$(".fav_rating li label").click(function(e) {
e.preventDefault();
_rated = true;
$("#item_fav_rating").val($(this).parent().index() + 1)
});