2017-05-26 61 views
-2

我正试图完成一个询问的挑战。Javascript停止和启动控制台日志

创建一个将消息和数字作为参数的函数,并按时间将消息记录到控制台。

var displayLog = function Container(param) { 
 
    var message = 'any string'; // Local message variable 
 
    var timeCount = '10'; // Local time count variable 
 

 
    setInterval(function getLoggeddemo(message, timeCount) { 
 
    console.log(message); 
 
    return getLoggeddemo; 
 
    }(), timeCount); 
 

 
    function myStopFunction() { 
 
    clearInterval(myVar); 
 
    }; 
 
} 
 

 

 

 
var mixBut = document.getElementById("mixBut"); 
 

 
mixBut.addEventListener("click", Start); 
 

 
function Start() { 
 
    displayLog.setInterval(); 
 
} 
 

 
function Stop() { 
 
    displayLog.myStopFunction(); 
 
}
<input type="button" id="mixBut" value="Start" />

+1

听起来像一个很酷的小挑战。你究竟在干什么? –

+0

我不能最后一块JS来运行,我将如何点击哪个是启动和停止功能。我不认为我正确地引用停止功能和间隔功能 – khalebrucht22

+0

以及你不存储间隔的ID ... – epascarello

回答

0
var displayLog = { 

    message : 'any string', // Default local message variable 

    timeCount : 1000, // Default local time count variable => equal to 1second 

    myVar : undefined, //at first is undefined,see myStartFunction 

    setSeconds : function(number_of_seconds){ 
     this.myStopFunction();//first stop previously event if existing 
     this.timeCount = number_of_seconds * 1000; 
    }, 

    setMessage : function(message){ 
     this.message= message; 
    }, 

    myStartFunction : function(){ 
     this.myVar=setInterval(function(){ 
       console.log(displayLog.message); 
      }, displayLog.timeCount); 
    }, 
    myStopFunction:function(){ 
     clearInterval(this.myVar); 
    } 
} 

var mixBut = document.getElementById("mixBut"); 
var c = 0; 
mixBut.addEventListener("click", toggleStartStop); 

function toggleStartStop(){ 
    if(c%2==0) 
      displayLog.myStartFunction(); 
    else 
      displayLog.myStopFunction(); 
    c++; 
} 
+0

非常感谢,我想我几乎在那里,我不断收到错误消息变量,意外的标识符。我很困惑,因为我认为这是正确的 – khalebrucht22

+0

@ khalebrucht22看到我的新答案,我改进了它并简化了代码。请记住,timeCount = 1000实际上是1秒,因为在setInterval中作为参数传递的时间必须以毫秒表示 –

+0

谢谢你几乎完美,我认为一旦日志开始,输入按钮不能停止。 – khalebrucht22

相关问题