我想设置一些Js变量来计算一些高度和偏移量,但是我需要在页面加载B/C后做这些事情我有第三方广告加载和转移的东西。
所以这个问题:
我所得到的是:
var sidebarHeight = $('.sidebar').height(),
sidebarOffset = $('.sidebar').offset().top;
但那些不会被正确设置,除非我让他们这样的:
$(window).on('load', function(){
var sidebarHeight = $('.sidebar').height(),
sidebarOffset = $('.sidebar').offset().top;
});
但问题在于那些变量不是全局变量 - 它们是该函数的本地变量,因此不能被其他函数重用。
那么问题:我怎样才能设置它,所以这些变量设置在window.load上,但仍然是全局的,可用于其他功能?
删除'var'。 –
为什么不直接在全局范围声明它们并将它们填充到onLoad?要做到这一点,您只需使用第一个示例,而无需分配任务。然后,你将使用第二个例子,没有var关键字(它只是一个赋值给在全局范围声明的变量) –
我更喜欢显式的'window ['sidebarHeight'] = ...',但是我也大写我的全局'SIDEBAR_HEIGHT';而不是'$(window).on('load''你可能想要做'$(document).on('load'',因为你真的在文档内容填充之后,而不是浏览器窗口打开。 – vol7ron