2009-12-28 10 views
0

사용자가 선택 컨트롤을 클릭하여 옵션을 선택하면 onclick 및 onselect 이벤트가 모두 발생합니까? 그렇다면 어떤 순서로? 브라우저에 종속적입니까?onclick 및 onselect javascript 이벤트의 순서

감사합니다.

+0

OK ... 나는 onchange (onchange)가 아니라 onchange (onchange)를 생각하고있었습니다. 나는 약간의 테스트를 수행했으며 파이어 폭스에서는 onchange이 onclick에 우선한다는 것을 알았지 만 둘 다 불이났다. 오페라도 같은 방식으로 작동합니다. Chrome에서 onclick은 전혀 실행되지 않는 것처럼 보이지만 onchange는 실행됩니다. 저는 리눅스를 사용하고 있기 때문에 IE의 동작을 테스트해야합니다. – Andrew

답변

1

테스트에 상당히 쉬워야에게 :

<select onclick="alert('click');" onselect="alert('select');"><option>A</option><option>B</option></select> 
0

그것은해야한다 :

  • mousedown
  • mouseup에
  • 클릭
  • 선택

하지만 비표준 브라우저 (IE)가 항상 이것을 준수하는지 잘 모르겠습니다. 의심스러운 경우 여러 개의 이벤트 수신자를 테스트하십시오.

3

select 이벤트는 사용자가 생각하는대로 수행되지 않습니다. 텍스트 상자 또는 텍스트 영역에서 텍스트를 선택할 때 발생합니다. 당신이 선택 요소를 클릭 화재 사건은 다음과 같습니다

  1. mousedown
  2. 초점 (선택 요소가 이미 초점을하지 않은 경우)
  3. mouseup에
  4. 클릭

때 선택 목록에서 항목을 클릭하여 선택한 값을 변경하면 change 이벤트가 발생합니다. IE에서이 이벤트는 키보드로 강조 표시된 항목을 변경할 때마다 발생합니다. Firefox와 Chrome에서 'enter'키를 눌러 change을 트리거해야합니다.

+0

죄송합니다. 제가 사용하고있는 이벤트에 대해 오인되었습니다. onselect가 아니라 onchange를 사용하고있었습니다. 그럼에도 불구하고 이것은 유용한 정보입니다. – Andrew

관련 문제