Javascript jQuery KeyUp()问题
一旦用户显示“a”,按钮颜色将改变,然后一旦用户释放“a”按钮,它应再次改变。按钮仅在按下字母“a”后改变颜色,而不是松开时改变颜色Javascript jQuery KeyUp()问题,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,一旦用户显示“a”,按钮颜色将改变,然后一旦用户释放“a”按钮,它应再次改变。按钮仅在按下字母“a”后改变颜色,而不是松开时改变颜色 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>website</title> <script sr
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>website</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$(document).keyup(function(event) {
if ( event.which == 97){
$('.button0 input').css('color', 'rgb(0, 0, 255)');
}
});
$(document).keypress(function(event) {
if ( event.which == 97){
$('.button0 input').css('color', 'rgb(128, 0, 0)');
}
});
});
</script>
<style type="text/css">
.button0 input{
position:fixed;
left:41px;
top:12px;
font-family:Arial;
font-size:8px;
font-weight:normal;
}
</style>
<body>
<div class="button0">
<input type="button" style="width: 303px;height: 165px;" value="Button"/>
</div>
</body>
</html>
网站
$(函数(){
$(文档).keyup(函数(事件){
if(event.which==97){
$('.button0 input').css('color','rgb(0,0255)');
}
});
$(文档).按键(功能(事件){
if(event.which==97){
$('.button0 input').css('color','rgb(128,0,0'));
}
});
});
.按钮0输入{
位置:固定;
左:41px;
顶部:12px;
字体系列:Arial;
字号:8px;
字体大小:正常;
}
再次执行键控操作时,为什么需要检查键控代码。。如果我理解正确,那么下面的代码应该可以工作
$(document).keyup(function(event) {
$('.button0 input').css('color', 'rgb(0, 0, 255)');
});
这里
如果您真的想比较关键点并更改颜色,那么您可以执行以下操作
在此更新
链接到代码列表。再次执行键控时,为什么需要检查键控代码。。如果我理解正确,那么下面的代码应该可以工作
$(document).keyup(function(event) {
$('.button0 input').css('color', 'rgb(0, 0, 255)');
});
这里
如果您真的想比较关键点并更改颜色,那么您可以执行以下操作
在此更新
链接到代码列表。来自for.keypress()
:
请注意,keydown和keyup提供一个代码,指示按下了哪个键,而keypress指示输入了哪个字符。例如,通过keydown和keypup将小写字母“a”报告为65,但通过keypress将其报告为97。所有事件都将大写字母“A”报告为65。由于这种区别,在捕捉特殊的击键(如箭头键)时,.keydown()或.keyup()是更好的选择
因此,您需要在keyup
处理程序中将event.which==97
更改为event.which==65
。来自for.keypress()
:
请注意,keydown和keyup提供一个代码,指示按下了哪个键,而keypress指示输入了哪个字符。例如,通过keydown和keypup将小写字母“a”报告为65,但通过keypress将其报告为97。所有事件都将大写字母“A”报告为65。由于这种区别,在捕捉特殊的击键(如箭头键)时,.keydown()或.keyup()是更好的选择
因此,您需要将
keyup
处理程序中的event.which==97
更改为event.which==65
。似乎是event.which在两个函数中的含义略有不同,因为这将起作用(chrome):
也许jQuery正在规范化event.which(per)for
keyup
,而不是keypress
,这似乎是event.which在两个函数中的含义略有不同,因为这将起作用(chrome):
也许jQuery正在规范化事件。对于
keyup
,而不是keypress
,问题是,您在函数上听到的键是错误的,请参阅文档了解:
请注意,keydown和keyup提供了一个代码,指示哪个键是
按下,而按键指示输入的字符。对于
例如,通过keydown和keydup将小写字母“a”报告为65,
但就像97年的按键一样。大写字母“A”报告为65
事件。由于这种区别,在捕捉特殊的击键时
例如箭头键,.keydown()或.keyup()是更好的选择
因此,要修复代码,请将keyup事件更改为:
$(document).keyup(function(event) {
if (event.which == 65) {
$('.button0 input').css('color', 'rgb(0, 0, 255)');
}
});
问题是,您在函数上听到的键不正确,请参阅文档了解: 请注意,keydown和keyup提供了一个代码,指示哪个键是 按下,而按键指示输入的字符。对于 例如,通过keydown和keydup将小写字母“a”报告为65, 但就像97年的按键一样。大写字母“A”报告为65 事件。由于这种区别,在捕捉特殊的击键时 例如箭头键,.keydown()或.keyup()是更好的选择 因此,要修复代码,请将keyup事件更改为:
$(document).keyup(function(event) {
if (event.which == 65) {
$('.button0 input').css('color', 'rgb(0, 0, 255)');
}
});
是否有某种方法可以将97转换为65?这不是jQuery的问题,这是浏览器处理事件的方式
keypress
提供与按键相关的字符,而keyup
提供一个keycode。是否有某种方法可以将97转换为65?这不是jQuery的事情,这是浏览器处理事件的方式keypress
提供与按键相关的字符,而keyup
提供一个keycode。因为键盘上只有一个带有a
字符的键,但是a
字符有小写和大写版本。键和大写字符的代码在这里是相同的,您可以使用找到正确的代码来使用。因为键盘上只有一个键带有字符A
,但字符A
有小写和大写版本。此处的键和大写字符的代码相同,您可以使用查找正确的代码。为什么要使用keypress
和keypup
而不是keypdown
和keypup
?为什么要使用keypress
和keypup
而不是keypdown
来匹配keypdown
。关于在keyup
上测试keycode,我的猜测是,这可能与这个特定问题无关,但一般来说,用户可以按住多个键,因此专门针对“a”键进行测试更为整洁。+1用于将keyup
与keyup
匹配。关于在keyup
上测试keycode,我的猜测是,这可能与这个特定问题无关,但一般来说,用户可以按住多个键,因此专门针对“a”键进行测试更为整洁。