2011-11-09 1 views
1

너비/높이가 설정된 IE8 블록 요소는 올바르게 표시되지만 마우스 이벤트 및 연결은 해당 요소 내부의 텍스트에서만 작동합니다. 마우스 오버는 요소 내부의 텍스트가 표시 될 때까지 감지되지 않습니다. 링크 인 경우에만 텍스트를 클릭 할 수 있습니다. doctype을 제거하면 (quirks 모드로 전송) 괜찮 았지만 사이트의 많은 스타일이 깨졌습니다. 내가 제대로 작동하도록 할 수있는 방법이 있습니까?IE8 너비/높이가 블록 안의 요소가 안쪽의 텍스트가 나타낼 때까지 마우스 오버를 감지하지 않습니다.

+0

IE를 이전 모드로 보내려면 [X-UA 호환] (http://msdn.microsoft.com/en-us/library/cc288325%28v=vs.85%)을 사용할 수 있습니다. 29.aspx). doctype을 제거하는 것보다 낫습니다. 질문에 대한 답변 : sdo 님의 제안 +1 – Jeroen

+0

질문에 해결책을 게시 한 것 같습니다. 솔루션을 실제로 찾은 경우 향후 답변을 게시하고 자신의 답변을 "수락"하면 향후 독자에게 가장 좋습니다. – Sparky

답변

0

이것은 페이지에 noscript 태그가 있기 때문에 발생했습니다. 제거하면 문제가 해결되었습니다. 나는 그것이 왜 그런지는 모르지만 누군가 다른 사람이 정교하게 해석 할 수는 있습니다.

1

전통적인 마우스 이벤트에는 많은 문제가 있습니다. JQuery의 mouseenter() 및 mouseleave() 이벤트를 사용하는 것이 좋습니다. 그들은 돔을 통과하여 마우스가 문제의 물체 안팎에 있는지 확인합니다. 바인딩 이벤트에 대한 속칭도 있습니다. 이처럼 한 번에 요소에 모두 이벤트를 결합하는 편리한 메소드 호버()를 사용할 수 있습니다 :이 도움이

$("#some-element").hover(
    function(){ 
    // mouse is inside the element 
    }, 
    function(){ 
    // mouse is outside the element 
    } 
); 

Check it out

희망을.

+0

꽤 오래되었지만 원래는 호버를 사용하고 다른 방법으로 해결책을 찾은 것으로 믿습니다. 그럼에도 불구하고 이들 또는 원시 메소드 중 어느 것도 작동하지 않았지만 문제는 대신 noscript 태그의 존재로 인해 발생한 것으로 보입니다. –

0

블록 요소 내부의 링크 위에있는 경우에만 mouseenter 이벤트가 작동하는 비슷한 문제가 발생했습니다. (그러나 IE 7에서 문제가 발생했습니다.)

블록 요소에 zoom: 1을 추가하십시오. 나는 또한 using .hover() in place of mouseenter and mouseleave에 대한 다른 대답에 동의


http://www.satzansatz.de/cssd/onhavinglayout.html

#myBlockElement { 
    zoom: 1; 
} 

하지만 혼자 아마 IE로 문제가 해결되지 않습니다.


은 또한 확실히 나는 DOCTYPE 유효하고 그 내 페이지가 완전히 compliant in the W3C Validator 어떤 IE의 문제에서 작업하기 전에이다 가지고 있는지 확인하고 싶다.

관련 문제