2011-11-04 4 views
0

"사용자 지정"콤보 상자 옵션 팝업을 구현하려고합니다. 목록의 각 옵션 근처에서 아이콘/이미지를 배치 할 수 있습니다.Firefox에서 Select 요소 옵션 팝업 사용 안 함

저의 목표는 가능한 한 일반적인 콤보처럼 보이게 만드는 것입니다. 따라서 Chrome과 IE의 경우 표준 팝업이 나타나는 마우스 및 키보드 이벤트를 잡아내는 솔루션입니다 컨트롤이 아직이 기본을 찾고 때마다 사용자가 클릭을하거나 초점을 맞추고 있도록, 이것은 기본적으로 만드는

@el.bind 'mousedown keydown keyup click', (e) => 
(...) 
e.stopPropagation() 
e.preventDefault() 

를 대신 네이티브 하나의 "사용자 정의"목록을 보여줍니다 잘 작동합니다.

그러나 firefox에서는 사용자가 콤보 상자 컨트롤 (< select>)을 클릭하자마자 popupshowing 이벤트가 트리거되지만 < 옵션으로 팝업 전에 취소 할 수있는 방법을 찾을 수 없습니다> 내 "사용자 정의"옵션 표시를 숨기고 구현을 표시합니다.

이 이벤트에 관한 유일한 정보는 Mozilla XUL 설명서에서 찾을 수있었습니다.

미리 감사드립니다.

답변

0

소스 코드를 살펴본 결과 드롭 다운을 열어 놓은 마우스 이벤트 나 popupshowing 이벤트를 취소 할 수없는 것으로 보입니다 (그 이벤트가 왜 생성되는지는 모르겠습니다). 그러나 부모 요소에서 마우스 이벤트를 캡처하여 전달을 중지 할 수 있다고 생각합니다.

+0

그게 내가 알아 냈어 ... 또한 부모 요소에 대한 전파를 막으려 고 노력하고 그것은 밖으로 작동하지 않았다 ... 슬프게도 내가 지금은 나를 위해 유일한 옵션은 브라우저를 감지하는 것입니다 같아요 파이어 폭스이며, 그렇다면 표준 콤보 박스 동작으로 저하됩니다./ 나는 upvote 할 것이지만 슬프게도 할 수 없습니다 :(최소 15 점 –

+0

@ FábioBatista 나는 받아 들인 대답을 받아 들일 것입니다 ;-) – Neil