jQuery resize不影响变量和词缀

时间:2015-01-28 09:08:11

标签: javascript jquery scope affix

我正试图让导航栏固定在正确的滚动位置。

我有一个#cover-section元素,在它下面是一个可附加的导航栏。 #cover-section元素可以调整大小。当它被调整大小时,我也希望修改粘贴偏移位置,但coverHeight变量似乎没有更新。 coverHeight值最初为0,始终保持为零。

如何在.resize()函数范围内获取coverHeight变量来实际修改在事件范围之外声明的变量值?

$(document).ready(function() {
  var coverHeight;
  coverHeight = 0;

  $(window).resize(function() {
    $('#cover-section').height($(window).height() - $('#navbar').height());
    return coverHeight = $('#cover-section').height();
  });

  $('.affixable-wrapper').height($('.affixable-wrapper > .affixable').height());
  return $('.affixable-wrapper > .affixable').affix({
    offset: coverHeight
  });

});

1 个答案:

答案 0 :(得分:0)

您没有将这些函数的值分配给coverHeight变量。调整大小没有回报,如果确实没有,则不会将其返回任何内容。尝试

$(document).ready(function() {
  var coverHeight = 0;

  $(window).resize(function() {
      $('#cover-section').height($(window).height() - $('#navbar').height());
      coverHeight = $('#cover-section').height();
  });
});

如果你只是绑定到大小调整火词,那么:

    $(window).resize(function() {
        $('.affixable-wrapper > .affixable').affix({
        offset: $('#cover-section').height($(window).height() -  
$('#navbar').height());
        }); 
    });

如果您只是在同一个功能中设置并调用它,则不需要coverHeight var