我想動態更新全局變量(窗口大小)。 body_size變量應該包含它下面的函數的結果。我明白變量不在範圍之內,但是我不知道如何將它傳遞出去。請幫忙。請參閱下面的代碼片段。使用窗口調整大小的函數結果更新變量jquery
$(document).ready(function() {
var body_size; // this updates correctly
var resizeTimer;
function setContainerWidth() {
body_size = $('.container').width();
}
$(window).resize(function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
setContainerWidth();
}, 200);
});
setContainerWidth();
console.log(body_size);
var SlidesInView = 3; // this should update depending on result below :
$(window).on('resize', function() {
setContainerWidth(); // to check width on resize?
if (body_size => 980) {
SlidesInView = 4; // change SlidesInView above if condition is met.
} else if (body_size <= 640) {
SlidesInView = 1; //change SlidesInView above if condition is met.
}
});
console.log(SlidesInView);
}); // doc ready
.container{
height:100vh;
width:100vw;
background:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="container">
</div>
基本上頂可變body_size應該用一個值,每當用戶改變窗口更新自身。
這裏沒有什麼意外的事,它實際上更新了你的變量。但是在'window.resize'裏面只有當你調整窗口的大小時纔會觸發。 'console.log'在'document.ready'中,當它被記錄時,事件還沒有被觸發。 –