函数不在事件监听器内调用

时间:2018-04-02 03:35:30

标签: javascript html

function main() {
    var dict = {};     
    document.getElementById("start").addEventListener('click',function(e) {
        e.preventDefault(); 
        if (document.getElementById("female").checked) { 
            dict["F"]=true;
        }

        if (document.getElementById("male").checked) {
            dict["M"]=true;
        }

        if (document.getElementById("gameA").checked){ 
             start(game.A);
        }
    });

因此,当单击开始按钮时,我想创建一些值的字典,然后如果选中了gameA框,我想开始游戏。但是,当它在eventListener中时,start函数似乎不起作用。启动功能应在屏幕上显示文本,然后播放音频。文本显示,但音频不播放。

如果我将start函数放在事件监听器之外,但仍然在main函数内使用:

document.getElementById("gameA").addEventListener('click',function () {
    start(game.A);
}); 

然后,音频工作正常。但是,我不知道如何分配字典,因为如果我将在事件监听器之外分配它的行放在一起,它就不会出于某种原因。

有没有人有任何提示?

1 个答案:

答案 0 :(得分:1)

为什么不尝试像

这样的东西
function main() {
    var dict = {};     

        event.preventDefault(); 
        if (document.getElementById("female").checked) { 
            dict["F"]=true;
        }

        if (document.getElementById("male").checked) {
            dict["M"]=true;
        }

        if (document.getElementById("gameA").checked){ 
             start(game.A);
        }
}

和HTML一样

<input type="button" value="StartButton" onclick="main();"/>