为什么if语句不适用于js

时间:2017-01-15 22:51:11

标签: javascript



window.addEventListener("keyup", addkey);

function addkey(){
		var x = event.which || event.keyCode;
		var wkey = 0;
		var op = 0;
		
		if(x == 87){
			wkey += 1;
		}
		if(wkey == 1 && op == 0){
			alert("your doing good!");
			op = op + 1;
		}
	}




我试图在这里发生的事情是让警报语句只运行一次,但我不能让它以任何方式工作。我试过使用一个真或假的数字系统(op变量),但这个dident工作。我所看到的是当代码运行并且keyup事件触发wkey变量更新一次并保持1时甚至知道每次按下w键时它应该是一个数字。无论如何,我正在制作这个代码,以配合我制作游戏的教程。我愿意接受的任何建议。

3 个答案:

答案 0 :(得分:3)

这是因为每次调用函数时都会重新初始化op0。你可以简单地在op之外对addkey进行delcare,它会起作用:



window.addEventListener("keyup", addkey);
var op = 0;
var wkey = 0;

function addkey(event){
    var x = event.which || event.keyCode;
    
    if(x == 87){
        wkey += 1;
    }
    if(wkey == 1 && op == 0){
        alert("your doing good!");
        op += 1;
    }
}




如果要成功计算按下次数,您还需要将wkey的声明拉出函数。

答案 1 :(得分:0)

因为你在每个函数运行中定义wkeyop,你应该在函数中定义它们,以使它按预期工作。

答案 2 :(得分:0)

每次调用该函数时,

wkey设置为0

然后添加1

所以它总是等于1

尝试在功能之外将wkey定义为0

或者

if(wkey == null) var wkey = 0;

代替。

如果使用此方法,op是不必要的。 (当然,除非你在其他地方使用它的价值。)