首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在单击- Javascript/jQuery上将背景更改为随机颜色

问在单击- Javascript/jQuery上将背景更改为随机颜色
EN

Stack Overflow用户
提问于 2015-09-30 00:56:52
回答 2查看 5.7K关注 0票数 0

每次点击导航条链接时,我都会尝试将身体的背景色更改为随机颜色。

我得到它是为了在第一次点击链接时改变一个随机的颜色--但是当一个不同的链接被点击时,没有什么改变。

有小费吗?

HTML:

代码语言:javascript
复制
    <div class="nav">
      <ul id="show">
        <li id="link1"><a href="#portfolio">Portfolio</li></a>
        <li id="link2"><a href="#about">About</li></a>
        <li id="link3"><a href="#email">Contact</li></a>
        <hr/>
      </ul>
    </div>

联署材料:

代码语言:javascript
复制
$(function() {

     var colors = ['red', 'blue', 'green', 'grey'];

     var randColor = colors[Math.floor(Math.random()*colors.length)];

     $('.nav a').click(function() {
         $('body').css('background-color', randColor);
     });
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-30 00:59:07

因为您只生成一个随机数并继续使用它,所以将其移动到click方法中。

票数 3
EN

Stack Overflow用户

发布于 2015-09-30 01:02:33

在每次单击时,您需要找到一个新的随机颜色,在您的示例中,randColor变量只更新一次,在单击句柄中,始终使用相同的值。

​

代码语言:javascript
复制
$(function() {

  var colors = ['red', 'blue', 'green', 'grey'],
    color;

  $('.nav a').click(function() {
    var randColor;
    do {
      randColor = colors[Math.floor(Math.random() * colors.length)];
    } while (color == randColor);
    $('body').css('background-color', randColor);
    color = randColor;
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="nav">
  <ul id="show">
    <li id="link1"><a href="#portfolio">Portfolio</a></li>
    <li id="link2"><a href="#about">About</a></li>
    <li id="link3"><a href="#email">Contact</a></li>
  </ul>
  <hr/>
</div>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32856097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档