2014-04-21 4 views
0

는 스크립트 :mouseenter/떠나 및 마우스 오버/아웃 문제

$(".title").mouseenter(function() { 
    var which = $(this).index(); 
    $('.globalnav li').find('.dropdown').hide().eq(which).show(); 
}).mouseleave(function() { 
    var which = $(this).index(); 
    $('.globalnav li').find('.dropdown').hide().eq(which).hide(); 
}); 

탐색 :

<ul class="globalnav"> 
    <li> 
     <div class="title"><a href="#" target="_self">Home</a></div> 
     <div class="dropdown"> 
      <div class="navlinks"> 
       <div class="linkstitle">Title</div> 
       <div class="navlink"><a href="#" target="_self">Link1</a></div> 
       <div class="navlink"><a href="#" target="_self">Link1</a></div> 
      </div> 
     </div> 
    </li> 
... 

내가 의도 한대로 크롬에서 작동하지 않는 지금 사용하고 무엇을 위의 코드는 * 내가 필요 div를 보려면 내 클릭을 누르고 있어야합니다. 마우스 오버를 사용하면 IE 및 FF에서 제대로 작동하지 않습니다.

코딩 형식 자체 (클라이언트 코드)의 특성으로 인해 제목의 연관된 div (제목 호버에서 특정 div 표시)도 표시하는 데 문제가 있습니다. 제목 위에 마우스를 올려 놓으면 "navlinks"에 대한 첫 번째 내용이 표시됩니다.

Here's a fiddle to show you

감사 같은 다른 LI의 모습은 which 변수가 항상 0 될 것이며,이 권리를 대상으로하는 방법이 아니라면 왜의 .title 요소의 인덱스를 사용하는

답변

0

.dropdown? 를 유혹하면서

하는 MouseLeave에게

<li> 
    <div class="title"> 
     <a href="#" target="_self">Home</a> 
     <div class="dropdown"> 
      <div class="navlinks"> 
       <div class="linkstitle">Title</div> 
       <div class="navlink"><a href="#" target="_self">Link1</a></div> 
       <div class="navlink"><a href="#" target="_self">Link1</a></div> 
      </div> 
     </div> 
    </div> 
</li> 

FIDDLE

+0

를 유발 요소 내부에 배치,이

$(".title").on('mouseenter mouseleave', function(e) { var dropdown = $(this).closest('li').find('.dropdown').toggle(e.type=='mouseenter'); $('.dropdown').not(dropdown).hide(); }); 

같은 더 뭔가를 시도하고 당신이 원하는 경우 드롭 다운 볼 수 있도록 처음에는 매력처럼 작동합니다. 감사합니다! 나는 당신을 +1 하겠지만 나는 충분한 담당자가 없다. (& 당신은 내가 크롬에서 작동하기 위해 그것을 잡아야 만하는 이유를 안다? 고마워! – eliavures

+0

확실하지 않다, 색인 것은 정말로 우스꽝스럽고 이상하게 보인다. 위의 대답의 해답은 모든 대답에서 작동해야하지만 마우스가 제목 요소를 벗어날 때 드롭 다운을 표시하지 않으려면 HTML을 변경해야합니다. – adeneo

+0

@ user3523715 - 오신 것을 환영합니다. – adeneo