在with app.app_context():
# js/css files
asset_env.append_path(app.static_folder)
# os.path.split to get package directory
loutilitiespath = os.path.split(loutilities.__file__)[0]
# kludge: seems like assets debug doesn't like url and no debug insists on it
if app.config['ASSETS_DEBUG']:
url = None
else:
url = '/loutilities'
asset_env.append_path(os.path.join(loutilitiespath, 'tables-assets', 'static'), url)
格之后,我正在使用此代码使导航保持粘性。它对我来说很好,但问题是我的控制台显示错误
未捕获的TypeError:无法读取未定义的属性“ top”
请为此提供一些解决方案。谢谢
#header1
答案 0 :(得分:3)
问题是因为在DOM准备就绪之前,您尝试使用offset()
元素时#header1
没有返回任何内容。要解决此问题,请将代码移到document.ready处理程序内。
还请注意,不建议使用bind()
,而应使用on()
,并且可以通过将addClass()
与布尔值一起使用来简化removeClass()
/ toggleClass()
逻辑。
$(document).ready(function () {
$(window).on('scroll', function () {
var navHeight = $(".header1").height();
$('.afterLgnRow').toggleClass('goToTop', $(window).scrollTop() > navHeight);
});
$('.afterLgnRow').affix({
offset: {
top: $('#header1').offset().top
}
});
});
我还注意到您同时访问#header1
和.header1
-确保这些选择器正确。