2011-03-09 4 views
0

나는 그 아래 div를 보이게하는 onmouseover javascript 함수를 호출하는 링크가 있습니다. 이제이 모든 것이 작동합니다.onmouseover issue

이제는 문제가 생겼습니다. href 링크가 있는데, 마우스를 윗부분에 올려 놓으면 완벽하게 작동하지만, "visible visible"div의 마우스 오버 탑을 움직일 때 깜박입니다. html은 생각하기 때문입니다. div를 벗어나지 말고 다시 켜십시오.

어떻게 이런 일이 발생하지 않도록 할 수 있습니까? 이 일어나고 IT의

<a style="text-decoration:none;display:block;" onmouseout="ShowStock(1,0);" onmouseover="ShowStock(1,1);" href="">50</a> 
<div id="stock1" style="visibility: hidden;"> 
<a style=" background-color:#009933; text-align:center;" name="1">1</a> 
</div> 

VIDEO (아래의 HTML, 자바 스크립트가 작동, 그것을 볼 수 있도록하는 간단한 기능, 게시물에없는 지점입니다) : 비디오에서 보여준 http://screencast.com/t/qjxHN4wyIc

답변

1

문제 된 stock1 div에 그 onmouseout을 발사하여 A 태그의 onmouseover를 발생시키는 stockd div를 닫고 초점을 도용 한 다음 A 태그의 마우스를 끈다.

가장 쉬운 방법은 동일한 ShowStock onmouseout/onmouseover를 stock1 div에 적용하여 "표시"합니다. 마우스를 올리면서 마우스를 놓고 마우스가 보이지 않으면 숨 깁니다. 단, 표시하는 A 태그 내의 영역을 마우스로 가리키면됩니다. 주식 외부인 요소 그냥 같은 길에 onmouseout 이벤트를 넣어

a.hover { 
    background-color: #ccc; 
    width: 200px; 
    height: 200px; 
    position: absolute; 
    top: 15px; 
    left: 15px; 
} 
#show1 { 
    display: none; 
    width: 200px; 
    height: 200px; 
    position: absolute; 
    top: 75px; 
    left: 75px; 
    background-color: #daa; 
} 

function showTarget(target, state) { 
    switch (state) { 
     case 1: 
      state = 'block'; 
     break; 
     default: 
      state = 'none'; 
    } 
    target = 'show'+target; 
    document.getElementById(target).style.display = state; 
} 

<a class="hover" onmouseover="showTarget(1,1)" onmouseout="showTarget(1,0)">Test</a> 
<div id="show1" onmouseover="showTarget(1,1)" onmouseout="showTarget(1,0)">Test Show</div> 
+0

@Steven - 내가 생각하는 것을 보여주는 예제를 게시했습니다. –

1

시도 : 예를 들어

이 (또한 비디오에서 보여준 오류 별도의 버전을 보여줍니다 jsfiddle.net에) 완벽하게 작동 onmousein 이벤트가있는 요소 "a"에 있고 원래 요소의 onmouseout 이벤트가 제거됩니다.

방금 ​​나타난 주식 요소에서 마우스를 가져 오면이 방법으로 닫힙니다.