簡體   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