因此,在网页上,只要重新调整大小或滚动浏览器窗口,就必须重新定位一些组件。
$( window ).on( 'resize scroll', reposition );
其中reposition
是执行此操作的函数。
但是,必须立即调用该函数。 (通过立即,我的意思是页面初始化 - 在DOM-ready内部。)需要这样做来设置组件的初始位置。
我目前正在这样做:
$( window ).on( 'resize scroll', reposition );
reposition();
我注意到这也有效:
$( window ).on( 'resize scroll load', reposition );
我相信这是可靠的 - load
在DOMContentLoaded
事件之前永远不会被触发。
但是这会延迟执行,直到所有页面资源都被加载(这可能需要几秒钟,具体取决于页面上有多少图像)。有没有办法告诉jQuery也应该立即调用绑定函数?
像:
$( window ).on( 'resize scroll now', reposition );
或
$( window ).on( 'resize scroll ()', reposition );
这些示例当然无效,但我想知道jQuery的on
方法是否具有此类功能。我想,我可以手动将此功能实现到on
,但我想首先检查它是否已经存在......
答案 0 :(得分:7)
您可以这样做:
$(window).on('resize scroll', reposition).trigger('scroll');
设置并触发事件回调。
虽然你应该在$(document).ready中设置它,但为了安全起见。基本上你的代码应该是这样的:
$(document).ready(function() {
$(window).on('resize scroll', reposition).trigger('scroll');
});
因此,您可以保证DOM可以随时使用