2015-01-28 7 views
0

Я пытаюсь сделать навигационную панель прикрепленной к соответствующей позиции прокрутки.Изменение размера jQuery не влияет на переменную и аффикс

У меня есть элемент #cover-section и под ним, прикрепленный навигатор. Элемент #cover-section может быть изменен. когда он будет изменен, я также хочу изменить положение смещения смещения, но переменная coverHeight, похоже, не обновляется. Значение coverHeight первоначально равно 0 и всегда остается равным нулю.

Как получить переменную coverHeight в пределах области действия .resize(), чтобы фактически изменить значение переменной, которое было объявлено за пределами области действия?

$(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 
    }); 

}); 

ответ

0

Вы не назначая значения этих функций переменной coverHeight. Resize не имеет возврата, и если вы это делаете, вы ничего не возвращаете. попробуйте

$(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 вар, если вы только настройки и вызова его в одной и той же функции

+0

, так что неявный возврат coffeescript - проблема – ahnbizcad

+0

Я не получаю от этого никакого другого поведения. Мне нужен код прикрепляемой части для ссылки на переменную 'coverHeight'. Должен ли я помещать «прикрепляемый» код в другое место? – ahnbizcad

+0

обновил ответ, вам не нужен var, если вы хотите привязываться только к размеру, чтобы позвонить аффикс – atmd