JQuery keyup不会触发,只需更改为click触发器

时间:2014-02-27 22:58:54

标签: javascript jquery html css keyup

JSFIDDLE在这里:http://jsfiddle.net/TmXFZ/

代码的作用是:如果在悬停表格单元格时按ALT,单元格的背景颜色将会改变。如果将鼠标悬停或释放ALT,则单元格的背景颜色将恢复原始颜色。

然而,当释放ALT键时,颜色不会改变。

我试着简单地改变

  $(document).keyup(function() {

  $(document).click(function() {

点击后,颜色变回完美。

那么为什么点击触发器但是keyup没有呢?

2 个答案:

答案 0 :(得分:1)

在Windows上的Firefox中,如果你点击 alt ,它将打开file/edit/view...工具栏。

你应该将它绑定到另一个键,因为 alt 有很多用途,并且在许多应用程序中是一个非常常见的快捷键/组合键。

答案 1 :(得分:0)

认为这可能是因为您构建代码的方式。您想要生成的方法与阅读文档不同。如果我能看到一些可以使用的代码,那将会很好,但我仍然可以构建一些可能有用的代码。

这应该可行,但我觉得$(this)不能用于第二个'悬停'功能。

$('td').mouseOver(function(){
    var td=$(this);
    $(document).keydown(function(keycode,td){
        if(keycode.altKey)$(td).css({'background':'#FF0000'});
    });
    $(document).keyup(function(keycode,td){
        if(keycode.altKey)$(td).css({'background':'#00FF00'});
    });
},function(){
    $(this).css({'background':'#00FF00'});
});