javascript - 如何在 jQuery 更改背景颜色后重置背景颜色?

标签 javascript jquery

首先,一个 jsfiddle... http://jsfiddle.net/therocketforever/jYba3/11/

//  Highlight selected linker link & set all others to default.  
    $('a.linker').click(function(){
    $(this).addClass('selected');
    $(this).parent('li').siblings().find('.selected').removeClass('selected');

//  Selects a random colour from the 'colors' array by getting a random value 
//  between 0 and the length of the color array.   
    rand = Math.floor(Math.random()*colors.length);
    $(this).css("background-color", colors[rand]);

现在是一个问题,

首先,这段代码几乎完全按照我希望的方式工作,用户单击一个链接,所选颜色应用于链接文本,从其他颜色中删除,链接的背景设置为随机颜色从颜色的阵列。很酷。

我想知道的是......我将如何做到这一点,以便从非选定链接中删除随机设置的背景颜色(即只有具有 .selected 类的链接具有背景颜色。)

额外学分

如果相同的背景颜色从未连续两次使用,则加分。 (即,如果单击一个设置为黄色,则单击两个设置为黄色以外的任何其他颜色。

最佳答案

这将满足您的所有要求(包括奖金)。

$(document).ready(function(){

//  Colours for links
var colors = ["#fff766","#66cef5","#bd7ebc","#66cc66"];

$("a.linker").click(function(){        
    var $this = $(this).addClass("selected");

    $this.parent('li').siblings().find('.selected')
        .removeClass('selected').css("background-color", "");

    var num = $this.data("colorNum"),
        rand = num;

    while (num === rand) {
        rand = Math.floor(Math.random()*colors.length);
    }

    $this.css("background-color", colors[rand])
        .data("colorNum", rand);
  });
});

关于javascript - 如何在 jQuery 更改背景颜色后重置背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324245/

相关文章:

javascript - 如何在 javascript 中使用 Django 模板标签

javascript - 我如何在 jquery 中使用 this 来调用元素

jquery - 选项卡内容未显示

javascript - For 循环中跨度值的总和(在 IE10 中工作)

javascript - 在 div 展开时更改链接文本

javascript - 如果没有页面刷新,单击功能不会触发

javascript - 每个页面使用不同 url 的分页

javascript - 是否可以在 jQuery 或 CSS 中修复图片的像素?

javascript - 如何防止滑动的 div 取代其他元素?

javascript - 通过 Javascript 使用 Google 文档