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

时间:2013-11-15 21:23:43

标签: javascript function events onclick return

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

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。对不起我的英文

2 个答案:

答案 0 :(得分:1)

删除()

document.onclick = getRandom;

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

答案 1 :(得分:1)

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

document.onclick = getRandom;