如何在一个函数中设置全局变量并让它由另一个函数访问?

时间:2014-12-25 00:00:34

标签: jquery global-variables

我想做的是当你点击'set'时它会设置滚动变量的位置。当您单击return时,我希望它将滚动位置更改为最后“设置”的位置。

jsFiddle:http://jsfiddle.net/qt2xxhtd/

HTML:

<div class="set">Set</div>
<div class="last">Return</div>
<p>Lorem ipsum...</p>

CSS:

div.set{
    width:50px;
    height:50px;
    margin:10px;
    background: red;
    position: fixed;
}
div.last{
    width:50px;
    height:50px;
    margin:10px;
    top: 80px;
    background: red;
    position: fixed;
}

jQuery的:

var scroll = $(window).scrollTop();

$('div.set').click(function(){
    var scroll = $(window).scrollTop();
});

$('div.last').click(function(){
    $(window).scrollTop(scroll);
});

2 个答案:

答案 0 :(得分:3)

var scroll = $(window).scrollTop();

$('div.set').click(function(){
    scroll = $(window).scrollTop(); // Don't use var here...
});

$('div.last').click(function(){
    $(window).scrollTop(scroll);
});

工作演示:http://jsfiddle.net/yd8dpgn2/

答案 1 :(得分:3)

只需删除该功能中的var关键字即可。这将使代码不会在函数中创建局部变量,因此它使用全局变量:

$('div.set').click(function(){
  scroll = $(window).scrollTop();
});