簡體   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