2014-09-04 37 views
-1

下面的代码只是在视口宽度(var)超过设置宽度时执行一个函数。jQuery Resize - 初始化函数(如果参数问题)

var viewportWidth = $(window).width(); 

function refit__slider__height(){ 
    var fitted__height = $('#promobanner__wrap').height() - 150; 

    $('#promobanner--slider').height(fitted__height); 
} 

$(document).ready(function() { 
    if (viewportWidth > 767){ 
     refit__slider__height(); 
    } 
}); 

// for the window resize 
$(window).resize(function() { 
    if (viewportWidth > 767){ 
     refit__slider__height(); 
    } 
}); 

不过,我已经注意到,当if语句低于767则上述767被调整的JS条件没有被捕获,页面刷新间隔为,如果条件相匹配。

有没有人遇到过这个?或者没有解决方案?

回答

3

您需要在resize事件再如重新初始化viewportwidth,

var viewportWidth = $(window).width(); 
$(document).ready(function() { 
    if (viewportWidth > 767){ 
     refit__slider__height(); 
    } 
    $(window).resize(function() { 
     viewportWidth = $(this).width();// re-init width on resizing window 
     if (viewportWidth > 767){ 
      refit__slider__height(); 
     } 
    }); 
}); 
+0

一个实际上可以在事件绑定后添加一个触发器:'$(窗口).resize(...})调整(); ' – Alex 2014-09-04 10:39:19

+1

这是没有必要的,因为他正在'document.ready()' – 2014-09-04 10:42:56

+0

谢谢@RohanKumar!现在它变得更有意义,但是,将文档放在文档中会有什么好处呢? – Neil 2014-09-04 10:55:06