2010-06-21 4 views
0

hover() (잘 hoverIntent 플러그인 ...하지만 같은 차이가 있음)를 사용하는 HTML 링크를 사용하여 div에 슬라이딩을 발생시킵니다 (CSS 상위 속성).hover()를 사용하여 내 jQuery 슬라이드 아래로 메뉴

마우스가 하이퍼 링크를 벗어나 메뉴 링크가 포함 된 div로 이동하면 즉시 mouseleave 이벤트가 트리거되고 메뉴가 사라진다는 점을 제외하면이 모든 기능이 완벽하게 작동합니다.

분명히, 나는이 "버그"를 알아 차리기 전에 그것을 끝없이 조정 한 후 어리 석음을 느꼈다.

문제는 : 내가 원하는 효과를 얻을 수있는 방법을 찾아 내지 못합니다. http://clifgriffin.com/blockade

어떻게, 전문가 오, 내가 할 노력하고있어 달성 할 것 : 여기

내 작품에 대한 링크입니까?

나는 마우스 입력과 마우스 놓기 기능을 분리하려고 시도했다 ... 링크에 전자를 추가하고 div에 후자를 추가했지만, 이것은 올바르게 작동하지 않는다. 그리고 내가 그 특질을 해결했다하더라도, 그것은 wouldn 링크를 가리킨 다음 위로 이동하면 마우스가 제대로 움직이지 않게됩니다.

기본적으로 링크에서 마우스로 메뉴를 이동해도 mouseleave가 실행되지 않으면 괜찮습니다.

각 메뉴에 대해 부울을 설정하고 메뉴를 둘러싼 모든 요소에 일련의 이벤트를 설정하여 특정 동작을 트리거하고 싶지는 않습니다. 이것은 그것보다 간단해야합니다.

아이디어가 있으십니까? 사전에

감사합니다, Clif

+0

P.S.을 아직 해결되지 않은 Firefox 이외의 다른 브라우저에서는 CSS 표시 문제가 있지만 필수적인 톱 메뉴 문제는 모든 브라우저에서 동일합니다. – clifgriffin

답변

0

이 시도 :

var accoIn = function(){ 
topSlideIn($("#top_menu_slideout .aco")); 
$("#top_menu_links .accommodations").unbind("mouseover");  
}; 

$("#top_menu_links .accommodations").hoverIntent(accoIn,function(){}); 

$("#top_menu_slideout .aco").hoverIntent(function(){},function(){ 
topSlideOut($("#top_menu_slideout .aco"));  
$("#top_menu_links .accommodations").hoverIntent(accoIn,function(){}); 
}); 
+0

실제로는 매우 잘 작동합니다. 슬라이드 아웃을 트리거하는 링크에서 위로 밀어 내면 철회가 시작되지 않지만 일부 이벤트는 맨 위 div에 바인딩하여 처리 할 수 ​​있습니다. 감사합니다. 이것은 제가 마음에 가지고있는 것과 비슷하지만 훨씬 더 우아합니다. – clifgriffin

+0

그래, 여전히 완벽하게 작동하는 데 문제가 있습니다. 기본적으로 확장 메뉴를 취소하려면 #top_hide 위로 마우스를 가져 가야합니다. 동일한 효과를 내기 위해 확장 된 메뉴가 아닌 다른 메뉴 위로 마우스를 가져 가야합니다. 나는 이것을 시도했다 : a) 전역 lastTrigger를 슬라이드 할 때 현재 메뉴로 설정. b) #top_hide를 올렸을 때 lastTrigger를 취소합니다. c) 다른 메뉴 항목을 마우스로 가리키면 lastTrigger를 취소합니다. d) 코드와 비슷한 단계에서 이벤트를 읽습니다. 하지만 이상한 행동을하고 있습니다. 그리고 그 코드는 조금 흐트러지고 있습니다. 어떤 아이디어? Clif – clifgriffin

+0

ok, 내일 체크 아웃 할 것입니다 ... 주요 문제는이 탭 구조가 실제로 hoverIntent 구조의 "철학"과 호환되지 않는다는 것입니다. 그것을 재 설계하는 것에 대해 생각해보십시오 ... –

관련 문제