【问题标题】:running javascript after page has been loaded [duplicate]加载页面后运行javascript [重复]
【发布时间】: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 实际需要什么
  • 立即调用的函数表达式

标签: javascript jquery javascript-events


【解决方案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 () {}); 之间有一个主要区别
猜你喜欢
  • 2014-11-21
  • 1970-01-01
  • 2011-10-08
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
  • 2015-02-22
相关资源
最近更新 更多