希望找到一些帮助来完成这个问题。
每次将消息参数记录到控制台(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语句来启动和停止序列。
答案 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;