2012-05-10 2 views
0

jQuery에 조금 익숙하며이 인스턴스에서 대기열을 설정하는 데 문제가 있습니다.Jquery 무한 대기열

이 작업을 수행하려고합니다. 마우스 오버시 첫 번째 대기열 항목이 실행됩니다. 그런 다음 은 다음 마우스 입력이 트리거 될 때까지을 대기합니다. 대기열을 무한대로 순환하십시오.

$("#header").mouseover(function() { 
    var $shineCopy = $("#shine111").clone(); 
    $shineCopy.appendTo('body').animate({ 
     width: "300px", 
     height: "300px", 
     opacity: 0, 
     "left": 0, 
     "top": 100 
    }, 1000, function() { 
     $(this).remove(); 
    }); 
    $shineCopy.appendTo('body').rotate({animateTo:180}) 
}); 
​ 
$("#header").mouseover(function() { 
    var $shineCopy = $("#shine222").clone(); 
    $shineCopy.appendTo('body').animate({ 
     width: "300px", 
     height: "300px", 
     opacity: 0, 
     "left": 0, 
     "top": 200 
    }, 1000, function() { 
     $(this).remove(); 
    }); 
    $shineCopy.appendTo('body').rotate({animateTo:180}) 
}); 

$("#header").mouseover(function() { 
    var $shineCopy = $("#shine222").clone(); 
    $shineCopy.appendTo('body').animate({ 
     width: "300px", 
     height: "300px", 
     opacity: 0, 
     "left": 0, 
     "top": 300 
    }, 1000, function() { 
     $(this).remove(); 
    }); 
    $shineCopy.appendTo('body').rotate({animateTo:180}) 
}); 
+3

도움이 필요한 것이 무엇인지 명확히 할 수 있습니까? – iambriansreed

+1

당신은 단지 세 개의 이벤트 핸들러를 묶는 것입니다, 그들은 모두 동시에 실행될 것입니다 ... 당신이 연속 된 이벤트에서 동작을 바꾸고 싶다면, 제가 작성한이 플러그인을보고 싶을 것입니다 : https : // github .com/fkling/jQuery-Function-Toggle-Plugin –

+0

펠릭스, 너무 우아하고 아름답습니다. 감사! – nuclearsugar

답변

0

http://jsfiddle.net/fChDX/

는 별도로 정의 된 세 가지 기능을 가지고 페이지 수준에서 정의 된 자바 스크립트 카운터 변수를 가지고 있고, 당신의 마우스 오버의 이벤트 coutner 변수를 업데이트하고이를 기반으로 호출하는 기능 결정을 모두 가지고있다. 이전 함수가 실행 중일 때 다음 트리거를 트리거하지 않도록하려면 start 함수에서 true로 설정 한 두 번째 "isrunning"var을 갖고 remove 함수에서 false로 설정하십시오. 아무 것도 필요하지 않습니다.