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

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

本文关键字:我的 onclick 不起作用 事件 函数 调用 返回值 为什么      更新时间:2023-09-26

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

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 个不同的新值(请记住,每次触发时getRandom()返回不同的数字)

我做错了什么?

附言我仍然是JS的菜鸟

P.P.S. 对不起我的英语

删除()

document.onclick = getRandom;

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

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

document.onclick = getRandom;