JS Func。记录时间间隔的消息

时间:2017-05-26 15:42:47

标签: javascript

希望找到一些帮助来完成这个问题。

每次将消息参数记录到控制台(Number Parameter)。实现一个html按钮来启动和停止此序列。

在尝试这个问题时,我能够做到这一点。

  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);
  } 

问题是要求每隔(x)秒显示一条消息,当按钮在开始和按钮之间切换时。停。我目前正试图弄清楚如何使用Html按钮包含if / else语句来启动和停止序列。

1 个答案:

答案 0 :(得分:1)

一些问题:

  • 不要将要传递给的函数调用setInterval:所以删除函数体后面的括号。

  • 您似乎永远不会致电displayLog

  • timeCount应该是一个数字,而不是一个字符串:它是间隔持续的毫秒数。

  • 按钮点击对间隔逻辑没有影响。

  • setInterval回调中返回内容没有任何意义。此参数也不会提供给该回调:删除这些参数。

我建议不要添加/删除事件监听器,而是使用一个布尔变量来指示你所处的状态,并根据它在一个单击处理程序中执行相应的操作:



var i = 0;
var displayLog = function Container(message) {
    console.log(i++, message);
    // Return the id of the interval
    return setInterval(function getLoggeddemo() { // no arguments here
        console.log(i++, message);
    }, 1000); // Every second
} 

var mixBut = document.getElementById("mixBut");
var interval = null;
mixBut.addEventListener("click", toggle);

function toggle(){
    if (interval === null) {
        mixBut.value = "Stop";
        interval = displayLog("Hi there!");
    } else {
        mixBut.value = "Start";
        clearInterval(interval);
        interval = null;
    }
}  

<button id="mixBut">Mix</button>
&#13;
&#13;
&#13;