jQuery键盘功能键按下
jQuery Keyboard Function keyPress
我有以下HTML/CSS来创建一个简单的键盘。我尝试过使用jQuery keyPress(),但我似乎无法获得它,所以当你在键盘上按键时,对应的字母具有类"trigger"。
例如,当您在id为"input"的文本区域中按Q时,id为"Q"的跨度应将其背景更改为绿色(更改为类"trigger")
如有任何帮助,我们将不胜感激,提前表示感谢。
编辑
到目前为止,我有一些Javascript,它会在每次击键时发出警报。请参阅此示例
如果只想在按键按下时更改背景,则需要将其设置为keydown
,然后将其设置回keyup
:
$(function () {
$("#input").keydown(function (event) {
$("#" + String.fromCharCode(event.which)).addClass("trigger");
}).keyup(function (event) {
$("#" + String.fromCharCode(event.which)).removeClass("trigger");
});
});
请注意,keydown
和keyup
返回的键代码不是字符代码,但就字母键而言,将它们视为大写字母的字符代码是安全的。(因此,在下面的演示中,我将跨度的id改为大写,以避免在事件处理程序中进行算术运算。)
演示:http://jsfiddle.net/AHPaY/6/
附言:如果你用这个演示进行实验,你会发现它也适用于同时按下按键,例如,同时按下Q和T。。。
在keypress
事件中,event.which
属性映射到字符代码。String.fromCharCode
方法可用于将数字charcode转换为字符。
在本例中,使用正则表达式来检查单个字符是否为有效代码。如果是,则添加一个类。
演示:http://jsfiddle.net/AHPaY/4/
$(function () {
$("#input").keypress(function (event) {
$('.trigger').removeClass('trigger');
var char = String.fromCharCode(event.which).toLowerCase();
if (/[qwerty]/.test(char)) {
$('#'+char).addClass('trigger')
}
});
});
试试这个
$(function () {
$("#input").keypress(function (event) {
var keycode=event.which || event.keycode;
var key=String.fromCharCode(keycode).toLowerCase();
$('span.trigger').removeClass('trigger').addClass('key'); // reset
$("#"+key).removeClass('key').addClass('trigger');
});
});
小提琴在这儿。
另一把小提琴在这里。
如果要将所有跨度保持为绿色,请禁用带重置注释的行
相关文章:
- 如何使用javascript/jquery更改转义键的功能
- 使用javascript为web应用程序自定义键盘快捷键
- 如何在JavaScript中启动键盘快捷键函数
- Javascript-iPad Tab键检测,带蓝牙键盘
- 如何使用javascript触发键盘快捷键(ctrl+alt+R)
- 当我用鼠标左键点击时,让这个功能工作起来
- 使用键盘快捷键将文件上传到HTML5页面
- 带有键代码参数Jquery的模拟按键功能
- 使用ExtJS捕获功能键事件(F1-F12)
- HTML按钮的作用类似于从键盘按下的键,并在某些对象或整个网站上起作用
- 是否有“”的键盘快捷键;暂停动画”;Chrome开发工具中的功能?(F12)
- 使用 JS 和 F11 键盘键功能的按钮
- 使用 jQuery 以编程方式命中功能键
- jQuery键盘功能键按下
- 为AJAX Live Search PHP添加快捷键(键盘箭头向上/向下)支持
- Javascript自定义操作的功能键按下
- 覆盖功能键默认操作在Chrome
- 输入键(键盘上)提交信息——Jquery
- 功能键按下javascript
- 如何使用 <对象>禁用 JSP 中显示的 PDF 中的功能键,从而(部分)阻止保存