2013-11-25 3 views
1

그래서 커서가 부모 링크 위로 이동하면 자식 메뉴 slidesDown이되는 하위 메뉴가있는 세로 메뉴가 나타납니다. 이 문제는 형제 링크를 커서로 빠르게 스크롤 할 때 발생합니다. 브라우징중인 부모의 자식 링크 애니메이션은 완료와 (i 가정) 시작 사이에 깜박입니다. 이제는 stop()을 얻었고 [queue] (http://api.jquery.com/stop/) 값을 포함하여 많은 반복을 시도했지만 아무 소용이 없습니다. 여기 vertical multilevelmenu slideToggle glitch

$('ul li').hover(
     function(){ 
      $(this).find(' > ul').stop(true, true).slideDown(700); 
     }, 
     function() { 
      $(this).find(' > ul').stop(true, true).slideUp(700); 
     }); 

은 예입니다 : http://jsfiddle.net/Kupdt/

당신이 만약 내가 발견 한 또 다른 문제는 .stop (참, 거짓) 같은 조치가 애니메이션 '스틱'을 수행하고 표시되지 않을 때 커서가 원래 다음 부모 링크로 이동했을 때 도달 한 것보다 다시 시작된 콘텐츠.

사과의 간단한 형태로서, 나는이 사이트의 다른 곳에서 답변을 얻었을 것이라고 확신합니다. 단순히 복제 할 수있는 용이성 때문입니다. 그러나, 나는 수색하고 관련 아무것도 찾을 수 없다. 아마 당신이 어떻게 빨리 문구를 쓸지 모르겠다.


EDIT
작은 화면으로보기에는 내 사이트에서 반응 형 '재 포맷팅'의 일부로 메뉴를 사용 했으므로 결국이 문제는 문제가되지 않았습니다. 이러한 장치는 거의 마우스 포인터와 유사한 호버링 시스템을 가지고 있지 않기 때문에 문제가 발생하지 않습니다.

답변

1

사용 .queue()

시도 :

$('#block-menu-block-1 li.expanded ul').slideUp(0);  
$('#block-menu-block-1 li.expanded').hover(function() { 
    $(this).find(' > ul').stop(true, true).slideDown(700).queue(function() {}); 
},  
function() { 
    $(this).find(' > ul').stop(true, true).slideUp(700).queue(function() {}); 
}).queue(function() {}); 

Fiddle here.

+0

죄송하지만,이 문제가 해결되지 않았습니다. 처음에는 jsfiddle에서 볼 때 결함이 IE와 Chrome에서 수정 된 것으로 보였지만 실제 사이트 내에서 수정 사항을 테스트 한 결과 별 차이가없는 것으로 보입니다. –

+0

크롬과 IE에서 복제하기가 조금 더 어렵지만 불가능하지는 않습니다. 파이어 폭스에서는 문제가 쉽게 발생합니다. –