如何在Jquery中将局部变量赋值给普通变量

时间:2016-05-06 09:28:09

标签: javascript jquery

我试图在滚动时计算我的h1标签顶部位置。我在网上找到了这个代码,它似乎对我有用。但是,问题是,然而我在scroll函数中打印了值,我可以得到值。但是,当我将该值分配给我的变量它总是显示0.我不知道它为什么会发生?

var my_offset = 0;
$(window).scroll(function() {
  var $h1 = $("h1");
  var window_offset = $h1.offset().top - $(window).scrollTop();
  my_offset = window_offset;
});
console.log(my_offset);

1 个答案:

答案 0 :(得分:3)

您需要将console.log放在滚动处理程序中,否则只有在值为0时才会在加载页面时运行一次。如果要保留var变量的范围,还应删除scroll事件处理程序中的my_offset。试试这个:

var my_offset = 0;
$(window).scroll(function() {
    my_offset = $("h1").offset().top - $(window).scrollTop();
    console.log(my_offset);
});

Working example