繁体   English   中英

从鼠标内部事件函数获取变量的值

[英]Getting Value of Variable from Inside Mouse Event Function

编辑:当我对javascript处理变量的方式产生顿悟时,我很想删除这个问题。 函数更改后,即可在函数外部访问“ CorrectAnswer”变量。 如果在函数运行后我要检查变量,例如单击按钮,它将显示变量的正确值,就像我想要的那样。 如果编辑要删除此问题,我没有异议。 但是,如果它可以帮助其他人具有相同的顿悟感,如果他们面临同样的问题,我很乐意放弃。 我为我的“新颖性”表示歉意,但我正在学习! 感谢大家...你们为我们所有人提供了出色的服务!

我正在Adobe Animate HTML5 Canvas中的一个拼图项目。 我试图将变量值从鼠标事件的内部传递到鼠标事件的外部。 具体来说,我想获取传递给函数外部的“ CorrectAnswer”的值。

我了解可变范围的概念。 到目前为止,我已经看到了使用jQuery完成的操作(例如, 如何从匿名鼠标事件函数内部访问变量? ),但是我想知道是否可以在Adobe Animate HTML5Canvas中使用的Easeljs框架内完成操作。 我尝试过在函数和其他涉及“返回CorrectAnswer”和另一个函数的方法之外定义变量,但无济于事。

function onMouseUp(evt){
  var item = evt.currentTarget;
  item.drag = false;
  var pt = item.localToLocal(item.dot.x, item.dot.y, 
    item.TargetAnswer);
  if(item.TargetAnswer.hitTest(pt.x, pt.y) ){
    item.x = item.TargetAnswer.x;
    item.y = item.TargetAnswer.y;
    CorrectAnswer=true;}
  else
    {CorrectAnswer=false;}
}

当然是console.log(CorrectAnswer); 函数内部产生所需的值。 放置在外部,它仅产生变量的初始定义值。 非常感谢您提供任何帮助。

在函数外定义变量应该可以:

 let correctAnswer = false; const onMouseUp = e => { correctAnswer = true; }; document.querySelector('button.set').addEventListener('mouseup', onMouseUp); document.querySelector('button.output').addEventListener('click', e => console.log(correctAnswer)); 
 <button class="output">output correctAnswer</button> <button class="set">set correctAnswer to true</button> 

如果问题仍然存在,您可能想向我们提供更多信息。 格里茨

暂无
暂无

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

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