2009-06-03 6 views
2

jquery의 호버를 사용하여 설정된 변수 (타이머)에서 하나의 타임 아웃 (cleartimeout)을 지우고 마우스가 요소를 벗어나면 다른 (settimeout)을 설정하려고합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?호버 설정 시간 초과

내 코드는 지금까지 (즉, 작동하지 않습니다 !!!!)입니다 :

  $(function() { 

      $('ul.contact').hover(function() { 

      $(this).clearTimeout(timer).animate({ 'opacity' : 0.7}); 
      }, function() { 
      $(this).setTimeout(function() 
          { 
          $('ul.contact').fadeOut('slow'); 
          }, 8000); 
          }); 
      timer = setTimeout(function() { 
       $('li#contact').removeClass('cur'); 
       $('li#$url').addClass('cur'); 
       }, 8625); 


}); 

답변

6

에서는 setTimeout() 및 사항 clearTimeout()가 호출한다 (글로벌) 윈도우 객체의 기능, 그래서 물체없이. 귀하의 예에서 "$ (this)"를 제거하십시오. setTimeout 및 clearTimeout 호출 전에

4

.animate() 호출을 clearTimeout()과 연결할 수 없습니다.

0

내가 계속 표시하고 싶은 실제 요소에 대해 다른 변수를 설정하지 않았다는 것을 깨달았습니다. 이제 다른 변수를 설정하고 새 코드로 모든 작업을 올바르게 수행하십시오.

팁을 많이 주셔서 감사합니다. 또한 포함되어 있습니다!

  $(function() { 

      $('ul.contact').hover(function() { 

      clearTimeout(display); 
    clearTimeout(timer); 
    $(this).css('display', 'block'); 
      }, function() { 
      $(this).fadeOut('slow'); 
      $('li#contact').removeClass('cur'); 
      $('li#$url').addClass('cur'); 
      }); 

});