我应该在哪里声明我的函数,以便从常规jQuery.ready()和jQuery(window.load()调用它?

我应该在哪里声明我的函数,以便从常规jQuery.ready()和jQuery(window.load()调用它?,jquery,Jquery,我从这两个不同的地方调用相同的函数: jQuery(document).ready(function($) { myfunction(); }); jQuery(window).load(function() { myfunction(); }); 但是,我似乎找不到声明函数的正确位置。现在我在两个地方都声明了这一点,这可能是错误的。有什么建议吗?您需要决定何时调用函数 您的函数是否只需要在dom就绪或页面中的所有资产都已加载时运行 第一种情况是在dom树就绪时执行代码。 陷阱

我从这两个不同的地方调用相同的函数:

jQuery(document).ready(function($) {
    myfunction();
});
jQuery(window).load(function() {
    myfunction();
});

但是,我似乎找不到声明函数的正确位置。现在我在两个地方都声明了这一点,这可能是错误的。有什么建议吗?

您需要决定何时调用函数

您的函数是否只需要在dom就绪或页面中的所有资产都已加载时运行

第一种情况是在dom树就绪时执行代码。 陷阱:假设您的函数正在基于一些尚未加载的资产进行布局计算。如果您有任何此类情况,则第二种情况是您需要执行的情况,或者您可以在资源上注册特定的加载事件并解决布局计算


第二种情况仅在所有资产加载html、css、js、img、第三方资源等后执行,陷阱:假设您在cdn中有一些资产组,需要花费大量时间才能给出响应,然后,您的函数将仅在处理请求后执行。

上面的示例显示了对
myfunction
的两个函数调用,但没有声明
myfunction
。您可以在任何处理程序之前声明它。另外,因为它是一个没有任何参数的命名函数,所以不需要匿名函数包装器:
function myFunction(){…}$(document).ready(myFunction)$(文档)。加载(myFunction)