我的jQuery代码中缺少什么吗

时间:2018-12-28 11:56:59

标签: jquery css

当一个班级显示为 block 时,我希望使用Escape键删除/隐藏一个下拉菜单。

在进入页面时,有一个下拉菜单只有在单击所选内容后才被激活。该代码检查是否将下拉类设置为display:block。如果是这样,则单击退出键会触发响应。

现在我只希望显示警报。

if ($('body').css('color') === '#353C3A') {
$('body', context).on('keyup', function(evt) {
      if (evt.keyCode === 27) {
           alert('This is just a test to see this message');
     }
});
}

我希望一旦单击退出键,就会看到警报框,但我没有。提前谢谢

2 个答案:

答案 0 :(得分:0)

首先要检查的是从if语句检查主体的颜色。如果您在内部具有断点或警报并且可以正常工作,则可以继续按按键。

对于按键,我建议使用$(document)代替body,您可以尝试添加一些带有class或id的div元素。

这是我在代码中使用的内容。

$(document).keypress(function(evt) {
    if (evt.keyCode === 27) {
        alert('This is just a test to see this message');
    }
});

OR

$(document).on('keyup', function(evt) {
    if (evt.keyCode === 27) {
        alert('This is just a test to see this message');
    }
});

答案 1 :(得分:0)

$('body').css('color')返回rgb,因此永远不会分配事件绑定。顺便说一句,如果您的身体元素在某些事件或时间延迟后变为color =#353C3A。您应该在事件处理程序(如tihs)中检查它。

$('body', context).on('keyup', function(evt) {
    if ($('body').css('color') === '#353C3A') { // hex color must convert to rgb
      if (evt.keyCode === 27) {
           alert('This is just a test to see this message');
      }
    }
});

您可以检查下面的链接,以将彩色十六进制转换为rgb:

{{3}}