Эти ключи не всплывают в Firefox, по крайней мере, в этом случае, поэтому .delegate()
или .live()
не будут работать. Это известная проблема, в этом случае лучше использовать другое событие, например keydown
или keyup
, вы можете посмотреть документацию jQuery для .keypress()
, чтобы быстро вспомнить об этом:
Обратите внимание, что нажатие клавиши и нажатие клавиши предоставляют код, указывающий, какая клавиша нажата, а нажатие клавиши указывает, какой символ был введен. Например, строчная буква «а» будет отображаться как 65 при нажатии клавиш и при нажатии, а как 97 при нажатии клавиш. Прописная буква «А» сообщается как 65 по всем событиям. Из-за этого различия при отлове специальных нажатий клавиш, таких как клавиши со стрелками, лучше использовать .keydown () или .keyup ().
Обновление вашего кода до этого работает:
$("div")().delegate(":input", "keyup", function(e){
log("delegated: "+e.keyCode);
});
$("div :input").bind("keyup", function(e){
log("bound: "+e.keyCode);
});