2012-03-12 3 views
1

단순한 희망!jquery .slideDown() 애니메이션이 끝나기 전에 Javascript 리스너가 실행되지 않음

문제는 내가 ('itemID'). 마우스 오버, jquery 슬라이드 다운 메뉴 상자에 대한 애니메이션을 발생시키는 것입니다. 문제는 마우스가 slideDown() amination의 끝 부분에서 원래 항목 (이 경우 텍스트 링크)을 벗어나면 .mouseleave 함수가 호출되지 않는다는 것입니다.

그렇지 않으면 잘 작동합니다.

이 메신저 사용하는 것입니다 : (menu14 텍스트 링크입니다, FunctionsMenu3이 메뉴 항목을 포함하는 숨겨진 사업부이다)

$('#menu14').mouseover(function() { 
    $('#FunctionsMenu3').slideDown('fast', function() { 
    // Animation complete. 
    }); 
}); 

$('#FunctionsMenu3').mouseleave(function() { 
    $('#FunctionsMenu3').slideUp('fast', function() { 
    // Animation complete. 
    }); 
}); 

그것의 JS CANT 해고 나에게 보이는 일의 바쁜 때문에 슬라이드 ... 사이트에서 볼 수 있습니다 http://www.impero-classroom-management.com 미리 감사!

+0

'mouseleave'는 IE 전용입니다 (jQuery로 고정되어 있지만). 아직 '호버 (hover)'구조를 사용해 보셨습니까? 참조 : http://api.jquery.com/hover/ – m90

답변

0

mouseleave에서 현재 애니메이션을 취소하려면 .stop()을 시도하십시오.

+0

안녕하세요 Christoph! 그게 내가 원하는 걸 가까이에,하지만 99 %를 작동합니다, 내가 떠난 다음 신속하게 떠날 경우, div는 그 다음 시간에 그 높이로 슬라이드가 취소되었습니다 !! IE는 만약 내가 hoveredm 다음 남았을 때 왼쪽 절반 방법, 완전히 닫을 것이라고하지만, 다음 시간에만 수준으로 떨어질 것입니다 ... 얼마나 이상한! –

+0

두 기능 모두에서 stop()이 있습니다. – Straseus

0

글쎄, 결국 슬라이드를 아래로 움직이지 않게함으로써 결국 그 주위에 있습니다.

수정 사항이 아니지만 실제로 할 수있는 모든 것입니다!

$('#FunctionsMenu5').mouseleave(function() { 
    $('#FunctionsMenu5').slideUp('fast', function() { 
    // Animation complete. 
    }); 
}); 
$('#menu15').mouseover(function() { 
    $('#FunctionsMenu5').show(); 
}); 
관련 문제