javascript - 将函数绑定(bind)到窗口调整大小和窗口滚动,但也立即调用它

标签 javascript jquery browser

因此,在网页上有一些组件必须在浏览器窗口重新调整大小或滚动时重新定位。

$( window ).on( 'resize scroll', reposition );

其中 reposition 是执行此操作的函数。

但是,该函数也必须立即调用。 (立即,我的意思是在页面初始化时 - 在 DOM 准备就绪的内部。)这需要完成以设置组件的初始位置。

我目前是这样做的:

$( window ).on( 'resize scroll', reposition );
reposition();

我注意到这也有效:

$( window ).on( 'resize scroll load', reposition );

我相信这是可靠的 - load 永远不会在 DOMContentLoaded 事件之前触发。

但这会延迟执行,直到所有页面资源都已加载(这可能需要几秒钟,具体取决于页面上有多少图像)。有什么方法可以告诉 jQuery 也应该立即调用绑定(bind)的函数吗?

喜欢:

$( window ).on( 'resize scroll now', reposition );

$( window ).on( 'resize scroll ()', reposition );

这些例子当然是无效的,但我想知道jQuery的on方法是否有这样的功能。我想,我可以手动将此功能实现到 on 中,但我想先检查它是否已经具备...

最佳答案

你可以这样做:

$(window).on('resize scroll', reposition).trigger('scroll');

设置和触发事件回调。

尽管为了安全起见,您应该在 $(document).ready 中设置它。基本上你的代码应该是这样的:

$(document).ready(function() {
    $(window).on('resize scroll', reposition).trigger('scroll');
});

所以你可以保证 DOM 已经准备好让你随意摆弄

关于javascript - 将函数绑定(bind)到窗口调整大小和窗口滚动,但也立即调用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8932505/

相关文章:

performance - CSS3 - 性能最佳实践是什么?

javascript - 单击 map 上的位置以查找最近的位置

javascript - 如何选择第一个可见的 jquery 选项卡

Jquery 自动完成::清除缓存

javascript - 确定网页是否适用于移动设备的最佳方法是什么?

python - 'import feedparser' 通过 SSH 工作,但在浏览器中时失败

javascript - 初始化外部 php 文件 - javascript/jQuery

javascript - Paypal 按钮返回 'Order could not be captured'

javascript - ReactJS:如何获取组件容器中的属性?

javascript - 自动图像裁剪 JavaScript 工具建议