これについて私が見つけたのは、キー コードに関しては、さまざまな Web ブラウザー間で矛盾があるということだけです。
次のコードは、Safari、Opera、および Chrome で Enter キーを押したときに正常に実行されますが、Firefox では実行されません。
FF9.0.1を使っています
問題が発生する 2 つのコード スニペットを次に示します。
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 - 解決策
まず、すべての回答に感謝します! もちろん、event.shiftKey ではなく、e.shiftKey でなければなりません。現在、すべてのブラウザーで動作します (まだ試していないのは IE だけです)。