我用这个代表我问题的简单代码缩小了我的工作:
runSomething();
function runSomething(){
function getRandom(){
var random = Math.floor((Math.random())*10);
return random;
};
document.onclick = getRandom();
};
有一个外部函数(runSomething()
)包含下一个函数:
getRandom
的函数,它返回0到9之间的数字(我用来选择数组的随机项)document.onclick = getRandom();
运行getRandom();
,以获得另一个新值但是会发生什么? document.onclick = getRandom();
只运行一次(加载文档时),但单击文档时没有任何反应
加载文档时不能触发getRandom()
,因为该函数在脚本的其他部分被触发,这意味着我将获得2个不同的新值(请记住{{1}每次被触发时返回不同的数字)
我做错了什么?
P.S。我还是JS的新秀
P.P.S。对不起我的英文
答案 0 :(得分:1)
删除()
document.onclick = getRandom;
()
将在加载时立即调用该函数,您必须传递该函数。
答案 1 :(得分:1)
分配onClick时,需要分配函数而不是执行它并分配返回值(这是()
所做的):
document.onclick = getRandom;