如何在$(Window).on(‘Load’)之后触发jQuery

时间:2018-02-15 作者:Rob Teeuwen

我有一个使用elementor page builder构建的WordPress页面,在该页面中,我使用名为响应式动画书的插件显示“动画书”(pdf查看器)。动画书由javascript函数响应,每当浏览器窗口调整大小时,动画书都会自动调整大小(我不知道为什么,但这不是我的插件)。

问题是这些书以最小的大小呈现,插件会激发jQuery(window).trigger(\'rfbwp.resize\'); 加载页面时,触发调整大小以使其适合当前窗口。然而,这似乎在某些浏览器上不起作用(至少在我的mac上的safari和chrome中是这样),这导致它们仍然很小。我发现当我在$(window).on(\'scroll\') 事件,每当我滚动时,它都会完美地调整书本的大小。当然,每当我实际调整页面大小时,它也会调整大小,但是,当我将这行代码放入$(window).on(\'load\') 事件

这让我觉得当这个事件触发时,元素还没有正确加载,这很奇怪,因为我认为窗口加载事件是最后触发的。

Could this have something to do with the way WordPress builds a page, 既然所有组件都有自己的脚本?是这样的吗$(window).on(\'load\') 最后触发-即使在复杂的WordPress页面中?

相关页面位于http://cdgstyle.mixrabbit.com/lookbook/

1 个回复
SO网友:WebElaine

这可能与WordPress核心无关——在大多数情况下,当插件发生冲突时,就会出现这种类型的问题。我建议停用所有其他插件,并尝试一个默认主题,一个la 2017。如果在这一点上有效,您可以切换主题(&A);测试,然后一次激活一个插件&;测试,直到你发现什么是冲突的,然后报告给插件作者,这样他们就可以找到解决办法。

同时,如果使用默认主题,但只有此插件仍然不起作用,那么可以尝试以下两种方法来代替$(window).on(\'load\'):

jQuery(window).load(function($) {
   // your function
});
或者更简洁

(function($) {
  // your function
})(jQuery);
WP使用jQuery没有冲突-因此它可能只是$ 语法。如果这样可以解决问题,那么通常向插件repo提交pull请求以促使作者采取行动的速度最快。

结束

相关推荐

将jQuery与WordPress结合使用(使用wp_enQueue_脚本

我需要在我的主题的单页模板中包含jquery。但看起来它不想这样。我尝试用wp\\u enqueue\\u scripts()调用它,但我什么也没做。下面是函数中的内容。phpadd_action( \'wp_enqueue_scripts\', \'custom_theme_load_scripts\' ); function custom_theme_load_scripts() { wp_enqueue_script( \'jquery\' ); } 以及我