在addEventListener调用的函数内更新globale变量

时间:2019-01-26 14:35:17

标签: javascript scope

我尝试用mousemove事件更新全局变量,但是它不起作用。我不知道还能做些什么。

我试图为我的函数创建一个变量以重用此变量,但再次没有结果。

我的代码:

let delta = 0;

window.addEventListener('mousemove', updateDelta, false);

function updateDelta() {
   delta++;
}

console.log(delta);

因此,当我移动光标时,增量不会在函数外部更新。

谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

此代码可以正常工作,但是问题是在该函数之后立即有console.log,这意味着在运行控制台日志后立即触发了控制台日志。

您可以在Google chrome中使用开发人员工具并为其添加断点,以便您可以看到它的工作。

您还可以将该控制台登录到该功能中,并对其进行更新。

答案 1 :(得分:0)

  

我尝试使用mousemove事件更新全局变量,但是它   不起作用。

问题不在范围内。

它在函数运行后立即被调用console.log中,因此它仅显示初始值。 您可以尝试以下方法来调用函数进行打印

var delta = 0;
window.addEventListener('mousemove', updateDelta, false);

function updateDelta() {
   delta++;  
   print()
}
function print(){
console.log(delta);}

OR

如注释和其他答案中所述,您可以在增量后立即打印该值。

var delta = 0;
window.addEventListener('mousemove', updateDelta, false);

function updateDelta() {
   delta++;  
  console.log(delta);
}

两者都对您有用。