Tag: keyup

如果在keyup上添加了char,则不会触发输入中的Google Chrome更改事件

$(‘input#not-gonna-work’).bind({ keyup: function(){ console.log(‘Typed a key’); $(this).val($(this).val() + ‘.’);// try with any other char }, change: function(){ console.log(‘I\’ma changed input’); } }); 我在这个简化的jsfiddle示例中暂存了这个bug。 与此错误相关的问题是我有一个正在构建的财务应用程序,如果输入数据发生更改,我需要显示“保存更改”按钮。 因为我需要在keyup立即插入千位分隔符(如果需要),这个bug真的让我烦恼并破坏了这个function。 要重现它,请转到jsfiddle示例,在第一次输入时打开控制台中的chrome类型, keyup事件将被正确触发,而不是使用制表符或单击其外部的非焦点输入,并且不会触发change事件。 对其他输入执行相同操作并将触发change 。 我在Firefox中对此进行了测试,它按预期工作。 我正在使用的Chromium版本是14.0.835.202(Developer Build 103287 Linux)Ubuntu 11.10 和 尝试直接从Chrome网站新安装的Google Chrome 15.0.874.106。 我可以在change事件上插入分隔符,但由于用户将输入大量7位以上的数字,因此在键入时插入分隔符会更好。

特定键的keydown + keyup事件

我正试图在按下某些键时使背景颜色发生变化。 例如,当按住’r’键时,背景应为红色。 当’r’键不再被按下时,背景应默认为白色。 $(document).ready(function () { $(‘body’).keydown(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’red’}); } if(e.keyCode == 121){ $(this).css({‘background’:’yellow’}); } }); $(‘body’).keypress(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’red’}); } if(e.keyCode == 121){ $(this).css({‘background’:’yellow’}); } }); $(‘body’).keyup(function(e){ if(e.keyCode == 114){ $(this).css({‘background’:’white’}); } if(e.keyCode == 121){ $(this).css({‘background’:’white’}); } }); }); 我遇到的问题是密钥不是专门针对每个密钥工作的。 $(‘body’).keyup(function(e){ $(this).css({‘background’:’white’}); }); 我知道如果我完全从keyup中删除if条件,那么它将按照我说的我想要的方式行事 – 但我希望以后能够使用特定键的keyup做不同的事情。 例如,当只释放’b’键时,它可能会在屏幕上显示“你刚刚发布了b键!”。 如何跟踪特定键的keydown和keyup事件,并为每个键发生不同的事情? 我知道这也不是很有组织(我对这些东西很新)所以如果有一个完全不同的更好的方法来做这个…