2014-02-18 5 views
0

공항 스타일 보드처럼 텍스트/숫자를 움직이는 Flapper.js라는 플러그인을 사용하고 있습니다.간격 재설정 및 리 파이어 기능

잘 작동하는 단어 배열을 순환하고 싶습니다. 하지만 나는 또한 setInterval과 충돌하는 재시작 단추를 가지고있다.

내 코드는

window.setInterval(function(){ 
     var messages = ["INSPIRE", "EMPOWER", "EVOLVE", "ENCHANCE", "CHANGE LIVES"], 
     message = messages[Math.floor(Math.random() * messages.length)]; 
     $('.flap').remove(); 
     $(".ticker .fixedGuide h2").after("<input type='text' value='abcde' class='flap light S'>") 
     $(".flap").flapper(opts).val(message).change(); 
    }, 5000); 

    $('.restartTicker').click(function() { 
     var messages = ["INSPIRE", "EMPOWER", "EVOLVE", "ENCHANCE", "CHANGE LIVES"], 
     message = messages[Math.floor(Math.random() * messages.length)]; 
     $('.flap').remove(); 
     $(".ticker .fixedGuide h2").after("<input type='text' value='abcde' class='flap light S'>") 
     $(".flap").flapper(opts).val(message).change(); 
    }); 

무엇 내가 .resetTicker 버튼을 공항 스타일 보드 업데이트가 내가가 원하는 얼마나 것입니다 클릭,하지만 난을 클릭하면 다음 setInterval을 스크립트가 여전히 실행 중일 때 발생 restartTicker 버튼을 3 초 후 2 초 후 다시 업데이트합니다. 내가 그것을 변수

var x = window.setInterval(...); 

에 간격을 설정 0

+0

우리가 귀하의 질문에 대답 않았다을 우연히 또는 아직 문제가 있습니다. – James

답변

1

나는 플래퍼를 모르는, 그래서 나는이 작동하지만 일반적으로이 같은 변수에 간격을 할당해야 간격 재설정 긍정적 아니에요 :

var myInterval = window.setInterval(function(){ 
    var messages = ["INSPIRE", "EMPOWER", "EVOLVE", "ENCHANCE", "CHANGE LIVES"], 
    message = messages[Math.floor(Math.random() * messages.length)]; 
    $('.flap').remove(); 
    $(".ticker .fixedGuide h2").after("<input type='text' value='abcde' class='flap light S'>") 
    $(".flap").flapper(opts).val(message).change(); 
}, 5000); 

$('.restartTicker').click(function() { 
    clearInterval(myInterval); 

    myInterval = window.setInterval(function(){ 
     var messages = ["INSPIRE", "EMPOWER", "EVOLVE", "ENCHANCE", "CHANGE LIVES"], 
     message = messages[Math.floor(Math.random() * messages.length)]; 
     $('.flap').remove(); 
     $(".ticker .fixedGuide h2").after("<input type='text' value='abcde' class='flap light S'>") 
     $(".flap").flapper(opts).val(message).change(); 
    }, 5000); 
}); 
+0

안녕하세요,이 코드는 내가 원하는 방식으로 작동합니다. 한 가지 문제가 있지만 ".restartTicker"를 클릭하면 myInterval이 onclick으로 설정되기 때문에 5 초가 지나야 만 작동합니다. 5 초 간격으로 회전 시키길 원하지만, 재시작 버튼을 클릭하면 곧바로 5 초마다 변경됩니다. 그 말이 맞는다면. – ltjfansite

+0

좋아, 내가 원했던대로 일하고있어. 그것이 최선의 방법인지는 확실하지 않지만 작동합니다. – ltjfansite

+0

죄송합니다. 나는 이것을 더 일찍 보지 못했습니다. 다행 이군. :) – James

2

로 다시 setInterval을 다시 시작하려는 그럼 당신은 x.clearInterval하여 지울 수 있습니다. 그러면 실행을 멈추고 간격을 다시 호출하여 한 번 더 시작할 수 있습니다.