setInterval()如何与button.onclick一起使用

时间:2013-03-25 01:54:48

标签: javascript setinterval

我希望仅在单击按钮时调用alertMe函数,但是它会被调用(调用setInterval调用它),就像页面加载一样。但是如果我把pageLoad函数拿走了,那么startButton就是null而且我无法用它做任何事情。谢谢你,伙计们!

/when user clicks start, start the animation
window.onload = pageLoad;

function pageLoad() {
    var startButton = document.getElementById("start");

    startButton.onclick = setInterval(alertMe,200);
}

function alertMe() {
  alert("hi");
}

2 个答案:

答案 0 :(得分:6)

function pageLoad() {
    var startButton = document.getElementById("start");

    startButton.onclick = alertMe;
}

function alertMe() {
  setInterval(function(){
    alert("hi");
  },200);
}

alertMe函数中移动您的时间间隔,并将其作为对startButton.onclick

的引用传递

DEMO:http://jsfiddle.net/gHS4a/

答案 1 :(得分:3)

基本上你需要这样做:

startButton.onclick = function() {
    interval = setInterval(alertMe, 200);
}

它的作用是发送对alertMe函数

的引用

另一种方式是:

startButton.onclick = function() {
    interval = setInterval(function(){
        alertMe();
    }, 200);
}

将发送一个匿名函数的引用,该函数将调用alertMe函数