cod*_*ppy 19 javascript jquery event-handling javascript-events
我忽略了Firefox的keydown行为,因为按下回车键(实际上是任何键)而没有专注于特定字段将不会触发keydown事件,它只会触发按键事件.
这可能非常令人困惑,因为keydown和keyup事件使用JavaScript密钥代码,而keypress使用ASCII代码.幸运的是,13(输入/返回)对两者都很常见.
在这种情况下,使用按键的 FF有什么原因吗?有什么好处?
一旦确定,IE8就会愚蠢,因为它不允许preventDefault要求,而returnValue = false另一个SO帖子的以下片段证明非常有用:
event.preventDefault ? event.preventDefault() : event.returnValue = false;
在搜索解决这些问题的过程中,我一直event.keycode对vs 感到困惑event.which.即我使用类似于以下的switch语句做错了:
$("#class_Name").bind("keydown", function(event){
    // do not test input if field controls used
    switch(event.which){
       case 13:
       //enter key 
       event.preventDefault ? event.preventDefault() : event.returnValue = false;
       break;
     }
以下是更好的,如果是这样,为什么?
$("body").keypress(function(event){
     // stop inadvertant form submission
     if (event.keycode == "13"){
       event.preventDefault ? event.preventDefault() : event.returnValue = false;
     }
});
我想知道,以便我知道最适合哪种方式.
非常感谢.
sQV*_*QVe 10
一些浏览器使用keyCode和其他人使用which.但是使用jQuery,这是标准化的,所以你不必考虑这一点.你可以选择你喜欢的那个.
event.whichIE中的未定义<9 keydown和keyup.
event.keyCodekeypress对于返回字符的键,Gecko(Seamonkey,Firefox)中的0为0 .
event.charCode 仅在Internet Explorer(Mac)的keydown和keyup上受支持.
| 归档时间: | 
 | 
| 查看次数: | 13819 次 | 
| 最近记录: |