2015-05-22 52 views
-1

我有一個變量來計算滾動像素,並且我希望點擊時指定其當前值,以點擊不同的變量。分配變量當前值JS

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

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

這個工作,但只分配一次值。例如,如果我滾動到500像素,它會爲它指定該值,但如果再次滾動並單擊它,它仍將具有500px的值。

+0

獲取事件處理程序內的滾動位置。 – elclanrs

+0

那就是預期的行爲。使用'var position = $('body')。scrollTop();' – Satpal

+0

您是否期望'scrl' *神奇地*改變它的值? JavaScript是所有傳遞的價值。 'scrl'被賦予'$('body')。scrollTop()'這是一個數字的返回值。除非你爲'scrl'分配一個新值,否則它的值不會奇蹟般地改變。 –

回答

1

一個方法調用僅僅返回一個靜態值。因此$('body').scrollTop()只會返回當前的滾動值並將其保存到scrl變量中。

當你想要得到的電流值,你就必須每次調用方法:

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

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

定義SCRL您點擊功能裏面,否則就只會得到一次

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