簡體   English   中英

在事件處理函數中更改變量值

[英]change variable value in event handler function

我正在嘗試在我的functiontest更改gaTop functiontest但我不明白為什么它不起作用

var gaTop = 0;

functionTest = function(callback)
{
    $('html').on("mousewheel DOMMouseScroll", function(e)
    {
        var delta = (e.originalEvent.wheelDelta || -e.originalEvent.detail);

        if (delta < 0)
        {
            var gaTop = -100;
        }
        else if (delta > 0)
        {
            var gaTop = +100;
        }

        console.log(gaTop);

        callback(gaTop);
    });
}

functionTest(function(e)
{
    console.log(gaTop);
});

作為參考: 聲明與初始化變量?

var ga = 0;
var gaTop = null;
functionTest = function(callback) {
$('html').on("mousewheel DOMMouseScroll", function(e) {
  var delta = (e.originalEvent.wheelDelta || -e.originalEvent.detail);
  if (delta < 0) {
    gaTop = -100;
  } 
  else if (delta > 0) {
    gaTop = 100;
  }
  console.log(gaTop);
  callback(gaTop);

});
}
functionTest(function(e) {
 console.log(gaTop);
}); 

在賦值之前,先在頂部初始化變量。 否則它將不會被設置,您正在創建新變量並在if和else導致問題的部分中都設置了值。

var gaTop = null;
 if (delta < 0) {
     gaTop = -100;
  } 
  else if (delta > 0) {
    gaTop = +100;
  }

它終於工作了,謝謝您的幫助!

var gaTop = 0;

            functionTest = function(callback) {
            $('html').on("mousewheel DOMMouseScroll", function(e) {
              var delta = (e.originalEvent.wheelDelta || -e.originalEvent.detail);
              if (delta < 0) {
                gaTop = gaTop -100;
              } 
              else if (delta > 0) {
                gaTop = gaTop +100;
              }
              callback(gaTop);

            });
            }
            functionTest(function(e) {
             console.log(gaTop);
            });     

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM