0
我试图创建一个适用于多选的函数。我创建一个视频游戏的选择屏幕应该像这样工作:https://oege.ie.hva.nl/~meestej005/eind/将参数传递给`addEventListener`
我实现了,这是这段代码的办法:
function character1(){
for (var i = 0; i < sprite.length; i++){
sprite[i].classList.remove('charSprite');
}
sprite[0].classList.add('charSprite');
hadouken.play();
}
我做了这个功能的4倍,每一个字符。他们被称为:
char1.addEventListener('click', character1);
现在,我想创建一个函数,为每个字符做到这一点。这是我想出的:
function character(name, music){
for (var i = 0; i < sprite.length; i++){
sprite[i].classList.remove('charSprite');
}
name.classList.add('charSprite');
music.play();
}
char1.addEventListener('click', character(charSprite1, hadouken));
不幸的是,这并不奏效。现在点击其中一个角色的结果是完全没有,甚至没有错误。所以我做错了什么,但不知道是什么。我想仅使用Javascript修复此问题。我希望你们能帮助我。谢谢。
我开始了解更多的是如何工作的,谢谢。但是,关闭是什么意思?我应该返回哪个函数? – H0ndman2
阅读更多关于闭包[这里](http://stackoverflow.com/questions/111102/how-do-javascript-closures-work#111111)。在我上面发布的代码中,'return function'是这个解决方案的一部分,它允许你“捕获”'name'和'music'。 – gyre
也许更简单的选择是通过绑定。 –