Javascript 将变量赋值为当前值JS

Javascript 将变量赋值为当前值JS,javascript,scroll,Javascript,Scroll,我有一个计算滚动像素数的变量,我希望单击时将其当前值指定给不同的变量 var scrl = $('body').scrollTop(); $('div').click(function(){ var position = scrl; }); 这是可行的,但只指定一次值。例如,如果我滚动到500px,它将为其分配该值,但如果我再次滚动并单击它,它仍将具有500px的值。在单击函数中定义scrl,否则它将只获得一次 $('div').click(function(){ var s

我有一个计算滚动像素数的变量,我希望单击时将其当前值指定给不同的变量

var scrl = $('body').scrollTop();

$('div').click(function(){
    var position = scrl;
});

这是可行的,但只指定一次值。例如,如果我滚动到500px,它将为其分配该值,但如果我再次滚动并单击它,它仍将具有500px的值。

在单击函数中定义scrl,否则它将只获得一次

$('div').click(function(){
    var scrl = $('body').scrollTop();
    var position = scrl;
});

方法调用只返回一个静态值。因此,
$('body').scrollTop()
将只返回当前滚动值并将其保存到
scrl
变量中

var scrl = $('body').scrollTop();

$('div').click(function(){
    var position = scrl;
});
由于要获取当前值,每次只需调用该方法:

// the element doesn't change, so it can be saved in a var
var $body = $('body');

$('div').click(function () {
    var position = $body.scrollTop();
});

获取事件处理程序中的滚动位置。这是预期的行为。使用
var position=$('body')。scrollTop()
您是否希望
scrl
神奇地更改其值?JavaScript是按值传递的
scrl
被分配返回值
$('body')。scrollTop()
是一个数字。除非您为
scrl
分配一个新值,否则其值不会发生神奇的变化。第二次如何测试该值?尝试像这样初始化函数的position变量oustide:::var position$('div')。单击(函数(){position=scrl;});