2011-08-02 6 views
0

이상한 문제가 있습니다. div 요소 안에 입력 요소가 있습니다. div 요소에는 왼쪽 및 오른쪽 키를 캡처하기 위해 이벤트 처리기가 첨부되어 있습니다. div 요소에는 tabIndex도 있습니다.입력 요소 왼쪽/오른쪽 키 버블

div 요소가 focsued되면 왼쪽 및 오른쪽 키를 캡처 할 수 있습니다. 그러면 왼쪽 및 오른쪽 키를 누르면 이벤트를 취소하고 거품을 멈추고 기본값을 방지합니다.

하지만 왼쪽과 오른쪽 키가 input 요소에서 작동하지 않고 div 요소가 키 누르기를 처리하고 이벤트를 취소합니다.

정상적인 동작입니까? 그렇다면 무엇을 할 수 있습니까?

감사합니다,

AJ

+0

코드 구현 사례없이 대답하기가 어렵습니다. – anderssonola

답변

1

그것은 이벤트 버블 링의 문제입니다.

대상 브라우저가 무엇인지 알 수는 없지만 문제는 : 외부 이벤트가 먼저 외부 div에서 캡처 된 경우도 있고 내부 이벤트가 처음부터 캡처 된 이벤트도 있습니다. 표준은 이벤트가 종료 된 다음 다시 종료된다는 것입니다.

div 씨름이 일어나기 위해서 (위로), yourdiv.addEventListener('keydown',doSomething,false) (이벤트 유형을 변경하거나 키 누르거나 다른 것)을 사용해야합니다.

Here은 내가했던 것보다 더 잘 설명 할 수있는 유용한 링크입니다.