加载页面后运行javascript [重复]

Posted

技术标签:

【中文标题】加载页面后运行javascript [重复]【英文标题】:running javascript after page has been loaded [duplicate] 【发布时间】:2013-03-28 06:04:17 【问题描述】:

我目前有一个 javascript 文件,我在我的视图页面中调用它,我可以在其中显示我的数据信息。同时,我有这段 javascript,一旦单击图像,就会显示一个菜单栏。这个脚本在页面完全加载之前运行,或者因为它不工作而运行。在所有其他脚本完成运行并加载页面后,如何让我的一段 javascript 执行操作?这是我尝试过但无法正常工作的方法

Javascript

(function ($) 

.... lines to load view page with data

$(document).ready(function () 
    $('figure').on('click', function (event) 
        $(event.currentTarget).toggleClass('open');
    );
);

)(jQuery);

【问题讨论】:

@mplungjan - $ 作为变量传入,但永远不会发出 $() @mplungjan 外部表达式是一个IIFE,内部是$(document).ready @ian 我看到了(不知道首字母缩写词)但忽略了它,因为它看起来更像是某种保护 jquery 的方法而不是需要的方法。我们将看到 OP 实际需要什么 @mplungjan benalman.com/news/2010/11/… , ***.com/questions/8228281/… 立即调用的函数表达式 【参考方案1】:

如果您想等到所有元素都加载完毕,您可以使用$(window).on("load") 而不是$(document).ready

$(window).on("load", function()
    $('figure').on('click', function (event) 
        $(event.currentTarget).toggleClass('open');
    );    
);

【讨论】:

我发现 window 的 load 事件在某些情况下也比 document.ready 更合适。 @mplungjan - 我需要在窗口而不是文档上使用加载版本的情况是,图像仍在视差站点中加载,或者在就绪事件触发时正在渲染图像。我发现在这些情况下使用 ready 时,尺寸有时会略有偏差。 这就像一个魅力,只是等到我可以将其标记为已回答。 @JeffShaver - 是什么取代了load?在这些情况下,我通常只使用window.onload = function() 而不是 jquery。 .load() 被弃用与"load" 事件之间存在差异。只需使用 .on("load", function () ); 代替。 $(window).on("load", function () );$(document).ready(function () ); 之间有一个主要区别

以上是关于加载页面后运行javascript [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在页面加载时自动运行javascript代码[重复]

页面加载后谷歌地图不显示[重复]

页面加载后如何立即调用javascript方法[重复]

页面加载完成后执行javascript [重复]

防止用户使用 jquery 或 javascript 重新加载页面 [重复]

减少页面加载时间的方法