javascript - jQuery - 改变颜色

标签 javascript jquery html css

刚开始学习一些 jQuery。我一直在看一些关于 w3schools 的教程。我的目标是在按下按键时更改形状颜色。我可以为按钮执行此操作,但不能为形状执行此操作。

我正在使用退格键代码 8,我正在使用这个

$("button").keydown(function(e) {
    if(e.which === 8) {
    	$(this).css("background-color", "black");
    }
});
$("button").keyup(function() {
    $(this).css("background-color", "yellow");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<button>
Color
</button>

例如,我将如何执行以下操作。我尝试了几种方法,但似乎无法正常工作。为什么将选择器更改为类名不起作用?任何提示都不胜感激。谢谢

.shape{
width: 40px;
height: 40px;
background-color: pink;
}
<div class="shape">

最佳答案

您的 button 本身接受键盘焦点,而您的 div 不接受。将此添加到 .shape:

<div class="shape" tabindex="0"></div>

演示

$(".shape").keydown(function(e) {
  if (e.which === 8) {
    // added for demo to prevent browser address change
    e.preventDefault();
    $(this).css("background-color", "black");
  }
});
$(".shape").keyup(function() {
  $(this).css("background-color", "yellow");
});
.shape {
  width: 40px;
  height: 40px;
  background-color: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="shape" tabindex="0"></div>

jsFiddle

要监听任何按键事件,而不需要将焦点放在特定元素上,您可以将代码调整为以下内容:

$(document).keydown(function(e) {
  if (e.which === 8) {
    e.preventDefault();
    $(".shape").css("background-color", "black");
  }
});
$(document).keyup(function() {
  $(".shape").css("background-color", "yellow");
});
.shape {
  width: 40px;
  height: 40px;
  background-color: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="shape"></div>

jsFiddle

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

相关文章:

javascript - 加载文件,通过电子邮件发送并停留在同一页面上

javascript - JSON 中位置 0 错误的意外标记 m

javascript - Ant Design 范围选择器禁用日期数组

jQuery 此选择器不可用于 animate() 方法属性

javascript - 如何将数据库中的数据打印到模态弹出框中?

javascript - 如何使用 jQuery 创建带有嵌套子菜单的下拉菜单

javascript - Jquery 无法使用 ID 选择器进行匿名函数调用

javascript - 我如何使用此代码来过滤网格的所有列?

javascript - 如果选中,则禁用第二个选择框的选项

jquery - 当视频自定义控件搜索栏试图结束时,HTML5 视频结束事件未触发