在事件处理函数中更改变量值

时间:2016-12-27 14:19:58

标签: javascript jquery

我正在尝试更改gaTop中的functiontest var,但我不明白为什么它不起作用

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);
});

3 个答案:

答案 0 :(得分:1)

参考:Declaring vs Initializing a variable?

@ConfigurationProperties

答案 1 :(得分:0)

在分配值之前将变量初始化为top。否则它不会设置,你正在创建新变量并在if和else部分设置值,这是问题的原因。

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

答案 2 :(得分:0)

它终于正常工作了,谢谢你的帮助!

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);
            });