繁体   English   中英

checkSound()函数和Express干扰

[英]checkSound() Function and Express interfering

我目前在global.js文件中设置了一个函数,该函数可以启动歌曲并在按下4键时将其暂停。 但是,当我实现此功能时,它将导致我的路由停止工作。 因此,在我的mainMenu.js文件中,当您按1键时,它应该带您到game.html,但什么也没有发生。 我不确定是什么造成了这种干扰。 关于如何阻止这种情况发生的任何想法

global.js:

window.onload = function(){
}

//music
var audio = new Audio('/music/oregonMusic.mp3')

function checkSound(){
    audio.play();

    document.onkeypress = function(e){
        if(audio.paused){
            audio.play();
        }
        else if(!audio.paused && e.keyCode === 52){
            audio.pause();
        }
    }
}
checkSound();

mainMenu.js:

window.onload = function(){
    //console.log('swing');
    checkSound();
}

document.onkeypress = function(e){
    //console.log('key pressed: ' + e.keyCode) 

    if(e.keyCode === 49){
        window.location = 'game'
    }
    else if(e.keyCode === 51){
        window.location = "topTen"
    }
}

使用

document.onkeypress = function(e) { ... }; // 1
document.onkeypress = function(e) { ... }; // 2

结果仅在按键上调用// 2

相反,您应该使用addEventListener

因此, global.js

document.addEventListener('keypress', function(e) {
    if(audio.paused){
        audio.play();
    }
    else if(!audio.paused && e.keyCode === 52){
        audio.pause();
    }
});

mainMenu.js

document.addEventListener('keypress', function(e) {
    if(e.keyCode === 49){
        window.location = 'game'
    }
    else if(e.keyCode === 51){
        window.location = "topTen"
    }
});

现在两个处理程序都将被调用

暂无
暂无

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

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