이 키가 파이어 폭스에서 거품을하지 않는, 적어도의 경우, 그래서 .delegate()
또는 .live()
이 작동하지 않습니다 -
$("div").delegate(":input", "keypress", function(e){
// doesn't get triggered
});
$("div :input").bind("keypress", function(e){
// gets triggered fine
});
다음은 문제를 보여주는 데모입니다. 를 keyDown와 어떤 키를 나타내는 코드를 제공의 keyup
주 : 이것은 알려진 문제,이 경우 다른 이벤트를 사용하기 위해서는 더 나은, keydown
또는 keyup
처럼, 당신은 이것에 대해 신속 추천 광고에 대한 jQuery documentation for .keypress()
을 볼 수있다 키를 누르는 동안 어떤 문자가 입력되었는지 나타냅니다. 예를 들어, 소문자 "a"는 keydown 및 keyup에 의해 65로보고되지만 키 누르기로 97로보고됩니다. 대문자 "A"는 모든 이벤트에 의해 65로보고됩니다. 이러한 구분 때문에 화살표 키, .keydown() 또는 .keyup()과 같은 특별한 키 입력을 포착하는 것이 더 좋습니다.
이 작품에 코드를 업데이트 :
$("div")().delegate(":input", "keyup", function(e){
log("delegated: "+e.keyCode);
});
$("div :input").bind("keyup", function(e){
log("bound: "+e.keyCode);
});
그런 데모 페이지를 설정하는 정말 좋은 생각 - 나는 모두가 텐데! – Pointy
동의, +1 데모! –
디버그 코드가 "e.which"값을 덤프 할 때 어떻게됩니까? – Pointy