2010-06-11 6 views
1

아래의 코드에서 직면하게되는 문제는 select 상자에서 옵션을 선택하려고 할 때마다 IE에서 실행되는 mouseout 이벤트 (Mozilla에서 gr8을 실행) 및 옵션 사라지다. 이 버그를 어떻게 극복 할 수 있습니까?select box 옵션 (IE)이있는 onMouseOut 이벤트의 문제점

<select name="ed" id="ed" dir="ltr" style="width:200px;overflow:hidden;" onMouseOver="this.style.width='auto'" onMouseOut="this.style.width='200px';"> 
     <option value="1" selected="selected">click here</option> 
     <option value="1">Samuel Jackson</option> 
     <option value="2">David Nalog</option> 
     <option value="3">This one is a real real big name</option> 
</select> 
+0

은 DOM에서 숨기거나 제거하도록 옵션이 설정되어 있습니까? –

+0

옵션은 거기에 있지만, 길이가 200px 이상인 옵션은 style = "width : 200px;"를 사용하는 IE에서는 표시되지 않습니다. – nik

답변

3

코드를 조건부로 변경했습니다. 이제는 잘 작동합니다. 확인해 봐.

<select name="ed" id="ed" dir="ltr" style="width:200px;overflow:hidden;" 
     OnMouseOver="this.style.width='auto';" onmouseout="if(!this.focussed) {this.style.width='200px';}" onfocus="this.focussed=true;" onblur="this.style.width='200px';this.focussed=false;" > 
     <option value="1" selected="selected">click here</option> 
     <option value="1">Samuel Jackson</option> 
     <option value="2">David Nalog</option> 
     <option value="3">This one is a real real big name</option> 
    </select> 
+0

onBlur가 포커스를 얻을 때까지 작동하지 않습니다. 마우스를 선택 상자 위로 스크롤하면 문제가 발생합니다. – nik

+0

지금보십시오. 나는 그 문제를 돌 보았다. – mohang

+0

멋진 친구 !! 나는 단지 onChange = "this.style.width = '200px';" 고맙습니다. 갤런 – nik