2013-03-04 9 views
0

다른 비슷한 질문을 본 적이 있지만 대답은 내가 찾던 것이 아닙니다. 아래 코드의 문제점은 변수입니다.JQuery 호버 기능 시간 초과

현재 형태로 숨기기은 첫 번째 가리키는 기능에는 표시되지 않지만 거기에는 아무 쓸모가 없으므로 더 높은 범위에서 선언하고 싶지 않습니다. 게다가 더 높은 범위에서 그것을 선언하는 것은 모든 li에 대해 다른 변수를 만들어야 할 것입니다.

이 두 함수 사이의 시간 초과가 포함 된이 변수를 유지하기위한 솔루션은 무엇입니까?

$('li').hover(function() { 
    clearTimeout(hide); 
    $('.menu', this).show(); 
}, function() { 
    var menu = $('.menu', this); 
    var hide = setTimeout(function() { 
     menu.hide(); 
    }, 500); 
}); 

답변

2

당신은 내가 감사 찾고 있었던 정확하게 .data()

$('li').hover(function() { 
    clearTimeout($(this).data('hide')); 
    $('.menu', this).show(); 
}, function() { 
    var menu = $('.menu', this); 
    $(this).data('hide', setTimeout(function() { 
     menu.hide(); 
    }, 500)); 
}); 
+0

에 값을 저장할 수 있습니다! –