javascript - 使用 JQuery 改变颜色

标签 javascript jquery html css

我在这里开发了一款游戏,它会将您点击的 td 更改为取决于变量的颜色。我希望这个变量在两个字符串之间随机选择,'lime' 或 'red' 我把那部分记下来了。问题是将 CSS 应用于 td,据我所知,我做的是正确的,但它似乎不起作用。

$().ready(function(){
  //Functions
  $('td').click(function(){
    if($(this).hasClass('block')) return;
    $(this).addClass(color);
    $(this).addClass('block');
    $(this).css('background-color:'+color);
    tilesLeft--;
    if(color=='lime'){color='red';}else{color='lime';}
  });
  
  //Variables
  var color;
  var tilesLeft = 9;
  
  //Setup
  if(Math.round(Math.random())==0){color='lime';}else{color='red';}
});

//Intervals
setInterval(function(){
  $('header').css('color:'+color);
},1);
html, body {
  background-color:black;
  color:white;
  text-align:center;
  height: 100%;
}
td {
  border: 1px solid white;
  margin:1px;
  width:30%;height:30%;
}

#board {height:500px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<header>Tic Tac Toe</header>
<table style='width:100%;height:95%;'>
  <tr><td></td><td></td><td></td></tr>
  <tr><td></td><td></td><td></td></tr>
  <tr><td></td><td></td><td></td></tr>
</table>

这有两点错误:

  • $(this).css('background-color:'+color); 没有改变背景颜色
  • $(this).css('color:'+color); 没有改变文本颜色

感谢您的帮助!

最佳答案

不太对:

$(this).css('background-color', color);

上面的内容,也许很明显,假定 color 变量已成功设置为有效的 CSS 颜色字符串。

看来您正试图传递一个字符串,也许是给 style 属性;相反,css() 方法提供了两种方法,'property','value':

css('background-color', 'red');

或者属性值对象:

css({
    'background-color' : 'red'
});

引用资料:

关于javascript - 使用 JQuery 改变颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26617746/

相关文章:

javascript - enzyme :在模拟 "click"时,测试异步更改的状态值

javascript - 检测用户对使用 Jquery ".html()"创建的 <select> 列表的更改

javascript - 使用javascript将地址栏添加到窗口

html - 我应该怎么做才能制作这个 960 网格布局?

javascript - 在元素内部添加元素

javascript - angularjs 过滤器不适用于 i18n 文本

javascript - 如何在本地主机上运行 html 文件?

javascript - 如何在多个 fabric js Canvas 的情况下管理内存?

jquery - 在 Accordion 标题上选择时如何检索 href 值

php - php/html中多列显示单列mysql数据