2

我希望仅在单击按钮时才调用 alertMe 函数,但只要页面加载,它就会被调用(调用 setInterval 来调用它)。但是如果我把 pageLoad 函数拿走,那么 startButton 是空的,我不能用它做任何事情。提前谢谢大家!

/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");
}
4

2 回答 2

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

    startButton.onclick = alertMe;
}

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

将您的区间移动到alertMe函数内,并将其作为引用传递给startButton.onclick

演示:http: //jsfiddle.net/gHS4a/

于 2013-03-25T01:57:28.907 回答
3

基本上你需要这样做:

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

它的作用是发送对alertMe函数的引用

另一种方法是:

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

这将发送对匿名函数的引用,该函数将调用该alertMe函数

于 2013-03-25T01:58:10.973 回答