Tôi có trang web nơi tôi muốn 'điều hướng phụ'. Vì vậy, khi bạn di chuyển đến phần, thanh công cụ của nó sẽ đóng bên dưới thanh công cụ chính. Tôi có điều này làm việc, nhưng tôi không thể thay đổi bù đắp đầu sau khi initailization. Các tài liệu nói:Twitter thay đổi khởi động bù đắp bù đắp
affix('refresh')
When using affix in conjunction with adding or removing of elements from the DOM, you'll want to call the refresh method:
nhưng khi tôi cố gắng này, tôi nhận được:
Uncaught TypeError: Object # has no method 'refresh'
Đây là mã của tôi:
$(function() {
$('.sec-nav').addClass("affix-top");
var adjustNavs = function (first) {
$('.sec-nav').each(function(){
var $p = $(this).closest('.sec');
var $$ = $p.prevAll('.sec');
console.log($$);
var h = 0;
$$.each(function() { h+=$(this).outerHeight();});
console.log(h);
if (first) {
$(this).affix({offset: {top: h}});
} else {
$(this).data('affix', {b: {options: {offset:{top: h}}}});
console.log(this);
$(this).affix('refresh')
}
});
}
adjustNavs(true);
$('.sec').bind('DOMSubtreeModified', function() {
adjustNavs();
});
});
tôi đã cố gắng biến thể khác nhau của
$(this).data('affix', {b: {options: {offset:{top: h}}}});
bao gồm:
$(this).affix({offset: {top: h}});
Tôi không thể nhận bù đắp thay đổi. Làm thế nào để bạn thay đổi bù đắp của plugin affix? Cảm ơn.
Bạn có thể dán một khối HTML không? Rất khó để nói cách khác ... Nếu bạn thử thay thế '$ ('. Sec-nav'). AddClass (" affix-top ");' với '$ ('. Sec-nav'). Affix();' Điều đó có giúp ích gì không? Hay bạn đã có thuộc tính 'data-spy =" affix "' trên '.sec-nav'? –