我不是一個JavaScript大師,所以請耐心等待我。Javascript評分系統
我一直在尋找一個良好的評價與js和我跑到他的博客:
http://www.marcofolio.net/webdesign/jquery_quickie_colourful_rating_system_with_css3.html
作者有一個演示,並提供代碼下載。
它看起來非常好,除了它沒有保存顏色的例子。因此,一旦用戶移開鼠標,顏色就會變回黑色(默認顏色)。
任何想法如何使顏色固定?
我不是一個JavaScript大師,所以請耐心等待我。Javascript評分系統
我一直在尋找一個良好的評價與js和我跑到他的博客:
http://www.marcofolio.net/webdesign/jquery_quickie_colourful_rating_system_with_css3.html
作者有一個演示,並提供代碼下載。
它看起來非常好,除了它沒有保存顏色的例子。因此,一旦用戶移開鼠標,顏色就會變回黑色(默認顏色)。
任何想法如何使顏色固定?
除了代碼TimDog有加:
加入
_rated = false;
到
$(".fav_rating li label").hover(function() {
重置每次用戶懸停在收視率的顏色。然後,當他們點擊_rated設置爲true,並因此防止顏色變化
此外,我在我的表單中使用隱藏的輸入,將包含評級的值。要做到這一點我的.click看起來像如下:
$(".fav_rating li label").click(function(e) {
e.preventDefault();
_rated = true;
$("#item_fav_rating").val($(this).parent().index() + 1)
});
這裏有一種方法 - 我在示例代碼中採取了仔細看看script.js
:
添加這個全局變量animationTime
var _rated = false;
的顏色在這裏重設下 - 看我如何」我使用了_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));
});
這將保持顏色突出顯示。當您刷新頁面或重新運行上面的重置動畫行時,它將被重置。
希望這會有所幫助。
當他們從較高的評分變爲較低的評分時,這是否奏效? – MikeSmithDev
非常感謝您的建議。這很好,它可以防止顏色回到原來的顏色。然而,如果你從高評級走低,它不會將高評級恢復到原來的水平。有什麼建議麼? –
我還沒有看到你提到的博客的代碼,但似乎當用戶點擊任何按鈕它顯示警報即使用onclick()。所以你可以有一個全局變量來保存數字,在那裏你可以添加代碼來保持顏色。
你有jQuery的顏色插件? http://archive.plugins.jquery.com/project/color – danjp
是的,我喜歡。我遵循TimDog的建議。它不會將顏色恢復爲黑色,但是當我從高到低的評級時,它不會更改較高的評級顏色。所以我想我必須恢復他們所有的默認顏色,然後基於投票顏色他們再次?你有更好的建議或解決方案嗎? –