Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript评级系统_Javascript_Rating - Fatal编程技术网

Javascript评级系统

Javascript评级系统,javascript,rating,Javascript,Rating,我不是javascript大师,所以请耐心等待我 我一直在寻找js的好评分,我跑去他的博客: 作者有一个演示,并提供了下载的代码 它看起来真的很不错,除了它没有保存颜色的例子。因此,一旦用户移开鼠标,颜色将恢复为黑色(默认颜色) 知道如何修复颜色吗?这里有一种方法——我仔细查看了示例代码中的script.js: 在animationTime var _rated = false; 颜色在这里被重置——看看我是如何使用\u rated变量的 // Restore all the rating

我不是javascript大师,所以请耐心等待我

我一直在寻找js的好评分,我跑去他的博客:

作者有一个演示,并提供了下载的代码

它看起来真的很不错,除了它没有保存颜色的例子。因此,一旦用户移开鼠标,颜色将恢复为黑色(默认颜色)

知道如何修复颜色吗?

这里有一种方法——我仔细查看了示例代码中的
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)
});