Raj*_*pta 20 javascript jquery events keycode keypress
我正在尝试以下代码space-bar
在输入框中按下时触发js方法.
<input id="j1" />
$('#j1').keypress (function (event){
alert(event.keycode)
});
Run Code Online (Sandbox Code Playgroud)
在firefox中,只有在enter
按下时才会返回正确的值,其他键返回的值每次只有0.在IE/chrome中,这非常有效.
Tim*_*own 27
在非IE浏览器中,您需要事件中的which
or charCode
属性keypress
而不是keyCode
属性.该keypress
事件是检测输入的字符,而keyup
并keydown
针对detcting物理按键(这些事件中,keyCode
在每一个主要的浏览器的工作原理).
var charCode = (typeof event.which == "number") ? event.which : event.keyCode;
Run Code Online (Sandbox Code Playgroud)
但是,jQuery which
通过使用与此类似的代码来规范化keypress事件的属性,所以在jQuery中你只需要
var charCode = event.which;
Run Code Online (Sandbox Code Playgroud)
有关关键事件的更多详细信息,请参阅http://unixpapa.com/js/key.html.
问题不是所有浏览器在按键上都有相同的实现.解决方案是检查key
注册的所有可能位置.在这种情况下:event.keycode
和event.which
有关详细信息,请参阅此帖子
编辑
最后挖出我的旧函数,这是我使用的实际代码:
evt = (evt) ? evt : event;
var charCode = evt.which || evt.charCode || evt.keyCode || 0;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19860 次 |
最近记录: |