2016-01-02 147 views
-2

我想在隨機時間間隔內做一個隨機函數。 這裏是代碼:在隨機時間間隔內做隨機函數(JQUERY)

function numberOne() { 
      $("#here").hmtl("numberOne"); 
     } 

     function numberTwo() { 
      $("#here").hmtl("numberTWO"); 
    } 

    var randomfunction = [numberOne, numberTWO] 
    var randomfunction = randomfunction[Math.floor(Math.random() * randomfunction.length)]; 


    (function loop() { 
     var rand = Math.round(Math.random() * (1000 - 500)) + 500; 
     setTimeout(function() { 
     randomfunction(); 
     loop(); 
     }, rand); 
    }()); 

它不起作用。我不知道爲什麼。你能幫我解釋一切錯誤嗎?謝謝!

+1

*「它不工作」 *如「無法甚至運行」,「運行,但在某些時候爆炸」,「運行,但不會做什麼我期望「,或者......? – kryger

+0

我知道有.hmtl但這仍然不起作用! :) –

回答

0

如果您正在檢查您的控制檯,您會發現它引發以下錯誤:

Uncaught ReferenceError: numberTWO is not defined(…)

所以,你的代碼將只是解決這個問題,請更換:

var randomfunction = [numberOne, numberTWO]; 

通過:

var randomfunction = [numberOne, numberTwo]; 

希望這會有所幫助。

0

有一個錯誤的函數調用,我可以看到,hmtl而不是html。

但我認爲我們可以改變你的方法,並把它帶到下一個層次。你可以這樣做。

function numberOne() { 
     $("#here").html("numberOne"); 
    } 

    function numberTwo() { 
     $("#here").html("numberTwo"); 
    } 

    var randomFunctionsArray = [numberOne, numberTwo]; 

    function loop() { 

     randomFunctionsArray[Math.floor(Math.random() * randomFunctionsArray.length)](); 

     setTimeout(function() { 
      var rand = Math.round(Math.random() * (1000 - 500)) + 500; 
      loop(); 
     }, rand); 

    } 

    loop(); 
0

jQuery(function($){ 
 
    function functionOne() { 
 
    console.log('one'); 
 
    } 
 
    
 
    function functionTwo() { 
 
    console.log('two'); 
 
    } 
 
    
 
    var functions = [functionOne, functionTwo]; 
 
    
 
    (function loop() { 
 
    var waitTime = Date.now() % 5000; 
 
    var executionIndex = Date.now() % functions.length; 
 
    console.log(executionIndex); 
 
    console.log(waitTime); 
 
    functions[executionIndex](); 
 
    setTimeout(loop, waitTime); 
 
    })(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>