我所发现的只是不同的网络浏览器在关键代码方面存在不一致。
我有以下代码在 Safari、Opera 和 Chrome 中按 Enter 时运行良好,但在 Firefox 中却没有。
我使用 FF 9.0.1
以下是出现问题的两个代码片段:
1)
//Post something
$('#postDiv').on('keydown', '#posttext', function(e) {
if ((e.keyCode == 13 || e.which == 13) && !event.shiftKey) {
post($(this));
}
});
2)
//Comment on a post
$('.commenttext').live('keydown', function(e) {
if ((e.keyCode == 13 || e.which == 13) && !event.shiftKey) {
comment($(this));
}
});
这两个函数甚至都没有被调用。
提前谢谢你:-)丹尼斯
编辑 1
我只使用 e.which 进行了更多测试,并注意到当我省略 && !event.shiftKey 时它可以工作 - 显然 FF 不知道该命令。有没有其他选择?我希望用户能够在不提交帖子的情况下按 shift+enter。我已经尝试过条件 if (e.which==13 && e.which!=16) 但无济于事。
编辑 2 - 解决方案
首先感谢大家的回答!当然它必须是 e.shiftKey,而不是 event.shiftKey!现在它适用于所有浏览器(我还没有尝试过的唯一一个是 IE)。