2011-03-24 2 views
0

3 초마다 회전하는 목록 항목이 있습니다. 내 문제는 실제로 마우스 오버와 마우스 리브 두 가지 이벤트를 도입하고 있습니다. 그래서 기본적으로 mosue가 목록 위에 놓일 때 목록이 움직이지 않고 마우스가 떠날 때 계속됩니다. 여기가 내 시도입니다. 의도 한대로 작동하지 않습니다. 실제로 마우스가 목록에 있으면 lags가 실행됩니다.mouseover 문제가있는 목록 회전

function test() { 
    var pre = $("ul li:first-child"); 
    (pre).each(function(i) { 
     $(this).slideUp(function(){ 
     $(this).appendTo(this.parentNode).slideDown(); 
    }); 
    }); 
} 
window.setInterval(test, 3000); 

$("ul").mouseover(function(){ 
    $("ul li").stop(); 
}); 
+0

HTML을 볼 수 있습니까? – mattsven

답변

0
var test = function(){ 
    if(keepGoing){ 
     var pre = $("ul li:first-child"); 
     pre.each(function(i){ 
      $(this).slideUp(function(){ 
       $(this).appendTo(this.parentNode).slideDown(); 
      }); 
     }); 
    } 
} 

var keepGoing = true; 

window.setInterval(test, 3000); 

$("ul").hover(function(){ 
    keepGoing = false; 
}, function(){ 
    keepGoing = true; 
}); 
1

window.setInternal을이 ID

var intervalId = window.setInterval(test, 3000); 당신이 원하는 무엇

을 반환한다 CLEAR 당신이 가져가 그 간격 다음에

clearInterval(intervalId); 

또한 -

을 사용하십시오. 0

$('ul').hover(function() {/*on hover*/}, function() {/*on leave*/});

이렇게하면 호버링을 마친 후에 다시 시작할 수 있습니다.