我正在使用JavaScript:权威指南
它提供了以下代码来解释setTimeout()和setInterval(),我的问题是它在Safari中运行时没有问题
但是在Mozilla它似乎根本没有触发,任何人都有
想法?
问题在于以下功能:
function invoke(f,start,interval,end){
if(!start) start=0; //default to 0ms (start right away)
if (arguments.length <= 2)
setTimeout(f,start);
如果我没有设置inverval并结束,它会起作用,但是如果我这样做的话 有些东西变得糊涂
else{
setTimeout(repeat,start);
function repeat(){
var h = setInterval(f,interval);
//if(end)setTimeout(function(){clearInterval(h)},end);
}
}
}
这只是在setTimeout()和上运行的虚函数 的setInterval()
function f(){
if(true)
alert("yo");
}
<button onclick="invoke('f,200,1000,5000')">yo</button>
跳跃地,有人对这一个有所了解,谢谢。
答案 0 :(得分:1)
<button onclick="invoke('f,200,1000,5000')">yo</button>
应该是
<button onclick="invoke(f,200,1000,5000)">yo</button>
否则,您将传递字符串'f,200,1000,5000'作为第一个参数。
答案 1 :(得分:0)
由于您的第二个单引号的位置,您似乎将一个变量传递给invoke
函数。尝试将其更改为
<button onclick="invoke('f',200,1000,5000)">yo</button>
看看它是否有效。
答案 2 :(得分:0)