2011-01-21 3 views
3

jQuery 및 hoverIntent 플러그인을 여러 번 사용했습니다. 드롭 다운 메뉴와 고급 탐색 기능이 조금 더 우아해야합니다. 하지만 문제가 생겼어.hoverIntent 타이머 취소

나는 마우스를 가져갈 수있는 클릭 가능한 li 요소가있는 메뉴가 있습니다. 인텐시 타이머가 발생하기 전에 누군가가 클릭하면, 내가 좋아 보이기 때문에 호각을 취소하고 싶습니다.

디자이너가 처음으로 어떻게 코더를 두 번째인지는 알 수 없습니다. 그것은 감도 등을 slideUp 및 slideDown라는 두 가지 기능을 정의하는 변수 configDown있어

$('#navigationContainer ul li').hoverIntent(configDown); 

: 이것은 의도를 호출하는 것입니다. 모든 것이 완벽하게 작동합니다.

누군가이 동일한 요소를 클릭하면 hoverIntent를 취소하려고합니다. 어떤 도움을 주시면 감사하겠습니다.

답변

2

li가 클릭하면 먼저 확인에 hoverIntent 콜백 내에서 코드를 수정하려면 hoverIntent을 취소하는 대신 : 당신이 비록 hoverIntent에 좋은 지연이 없다면

var configDown = { 
    slideUp: function() { 
     if ($(this).hasClass('no-intent')) return; 
     // slide up 
    }, 
    slideDown: function() { 
     if ($(this).hasClass('no-intent')) return; 
     // slide down 
    } 
}; 

$('#navigationContainer ul li').click(function() { 
    $(this).addClass('no-intent'); 
}).hoverIntent(configDown); 

것은, 그것은 트리거 까다로운 일이 될 수 있습니다 이 올바르게 (hoverIntent가 트리거 된 직후에 끝날 수도 있음) 기본 개념은 조정할 수 있습니다.

+1

감사합니다. 그것은 잘 작동하는 것 같습니다. 하나는 정말 빨리 클릭해야하지만, "빠른"사용자를위한 새로운 페이지가로드되기 전에 시각 효과를 피하기 위해 추가하는 것입니다. – plebksig