繁体   English   中英

为什么当我调用具有返回值的函数时,我的onclick事件不起作用?

[英]Why when i call a function with returning value, my onclick event doesn't work?

我用这个代表我问题的简单代码缩小了我的工作:

runSomething();

function runSomething(){

    function getRandom(){
        var random = Math.floor((Math.random())*10);
        return random;
    };        

    document.onclick = getRandom();
};

有一个外部函数( runSomething() )包含下一个:

  • 一个名为getRandom的函数,它返回一个0到9之间的数字(我用来选择一个数组的随机项)
  • 还有一个document.onclick = getRandom(); 应该做的是RUN getRandom(); 每次我点击文档的任何位置,以获得另一个新值

但是会发生什么? document.onclick = getRandom(); 只运行一次(加载文档时)但单击文档时没有任何反应

并且在加载文档时不能触发getRandom() ,因为该函数在脚本的其他部分被触发,这意味着我将获得2个不同的新值(请记住, getRandom()每次返回不同的数字被解雇了)

我做错了什么?

PS我还是JS的新秀

PPS抱歉,我的英文

删除()

document.onclick = getRandom;

()将在加载时立即调用函数,您必须传递函数。

分配onClick时,需要分配函数而不是执行它并分配返回值(这是你的()所做的):

document.onclick = getRandom;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM