嘗試更改jQuery中的滾動值。更改全局變量值jQuery
var a= 10;
$(window).scroll(function() {
a= $(this).scrollTop();
});
console.log(a);
這裏是提琴:https://jsfiddle.net/jpb2rfxa/
儘管如此控制檯顯示10.如何改變價值?
嘗試更改jQuery中的滾動值。更改全局變量值jQuery
var a= 10;
$(window).scroll(function() {
a= $(this).scrollTop();
});
console.log(a);
這裏是提琴:https://jsfiddle.net/jpb2rfxa/
儘管如此控制檯顯示10.如何改變價值?
我明白你想要什麼,但我不明白你爲什麼不明白你的代碼是幹什麼的。
var a = 10;
$(window).scroll(function() {
var a = $(this).scrollTop();
console.log(a);
});
該代碼將改變的一個值在每個滾動,和輸出在每個滾動事件該值。 console.log將因此在每個滾動中發生。
var a = 10;
$(window).scroll(function() {
a = $(this).scrollTop();
});
console.log(a);
在這段代碼中,a仍然會在每個滾動條上發生變化。但是,console.log只會被調用一次,即第一次讀取文件 - 不會發生任何滾動。這是因爲.scroll是一個事件處理程序,只有當事件發生時纔會觸發(在本例中爲滾動)。因此,首先console.log會發生(僅一次),並且由於用戶尚未滾動,值將爲10.如果用戶隨後滾動,值將會更改,但console.log不會再被調用,所以您在控制檯中看不到新的值(即使已更改!)。
我假設你想在函數每次改變時使用a
的值,但如果是這樣的話,這不是辦法。然後您需要在滾動事件中調用該函數,因爲您希望每次都使用新值調用該函數。
var a = 10;
$(window).scroll(function() {
var a = $(this).scrollTop();
logging(a);
});
function logging(val) {
console.log(val);
}
謝謝。你明白我的意思了,我明白了。再次感謝 – nikolas
在Javscript或jquery中,變量的作用域是可以運行的......我在window.scroll函數中獲得的變量'a'正在更新,但是當用戶實際上滾動了已經附加它的元素時至。並且您正在打印以記錄相同的原始值。
如果在scroll函數中移動console.log,您可能會看到您期望的結果..並且它會在您執行滾動事件時在控制檯中進行打印。
var a= 10;
$(window).scroll(function() {
a= $(this).scrollTop();
console.log(a);
});
滾動頁面後直接在控制檯中打印「a」。 –
它的滾動功能,但我需要滾動值外部功能 – nikolas
它會改變。您在設置後直接輸出a的值。這就是爲什麼它是10.如果您要設置超時並在此時滾動,它將會改變。每個使用這個全局值的函數都是一樣的。 'a'會有新值 – Fuzzyma