Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript window.on load函数仅在一个页面上执行_Javascript_Jquery_Html - Fatal编程技术网

Javascript window.on load函数仅在一个页面上执行

Javascript window.on load函数仅在一个页面上执行,javascript,jquery,html,Javascript,Jquery,Html,当页面加载后,我让这个JS在包装中淡出: $(window).on('load', function(){ $(".wrapper").fadeIn(); ... }); 它只适用于一个页面,但不适用于任何其他页面。 在那里,包装不会褪色。 我尝试了一个console.log,但效果不好,因此该函数根本无法执行 JS文件通过PHP加载,包括: <?php include 'website/inc/head.php'; ?> 然后head.php加载main.js。

当页面加载后,我让这个JS在包装中淡出:

$(window).on('load', function(){
  $(".wrapper").fadeIn();
  ...
});
它只适用于一个页面,但不适用于任何其他页面。
在那里,包装不会褪色。
我尝试了一个
console.log
,但效果不好,因此该函数根本无法执行

JS文件通过PHP加载,包括:

<?php
  include 'website/inc/head.php';
?>

然后
head.php
加载
main.js
。每一页都是一样的。但它不会在除一个页面之外的所有页面上执行该函数

顺便说一下,我正在使用
$(window).on('load',function(){…})
,因为使用
$(window.load(function(){…})时,我得到了一个
a.indexOf不是一个函数
错误

你可以在网上查看。打开导航并转到“公文包”,它在那里工作。

main.js中有以下结构:

 $(document).ready(function(){
   // this code is applied when `document.ready` fires`

   $(window).on('load', function(){
     // this code is applied when `window.load` fires
     // if it was bound before `window.load` fired
   });

 })
解析
main.js
时,不会应用
$(document).ready
中的代码,而是在
$(document)
上触发
ready
时应用

$(document).ready()在DOM完成构建时激发。
(基本上,浏览器符合
标记)

$(window).load()在所有资源(脚本、样式、图像等)加载完毕后激发

当触发
document.ready
事件时,应用该函数中的代码,同时浏览器继续加载资源。
如果页面很轻并且与服务器的连接很快,
window.load
将在浏览器完成应用
$(document)ready(…)
中的代码之前启动。因此,它可能会在
window.load
已触发后,在
window.load
上绑定侦听器

解决方案是在分析
main.js
时,而不是在
document.ready
激发时,在
窗口上绑定侦听器

 $(document).ready(function(){
   // this code is applied when `document.ready` fires`
 })
 $(window).on('load', function(){
   // this code is applied when `window.load` fires
   // and now you can be sure it has been bound before `window.load`
 });

请问您为什么在
$(document.ready()
)中调用
$(window.on('load')
?你可以尝试在索引页上添加脚本而不是在标题中添加脚本,然后分享你的反馈,也许在我可以帮助你之后。通常它应该作为
文档工作。就绪
事件在
窗口之前触发。加载
。但是,由于您的页面非常轻,因此它们之间的差异可能非常小,以至于在读取和解析
文档.ready
代码时触发
window.load
,因此绑定在触发
load
之后完成。修复方法是将
$(window).放在('load',…)
之外的
$(document).ready(…)
@andreegheorghiu-Oh有意义。所以,如果我添加窗口加载作为documentready的回调,它应该可以工作吗?别担心,我不会那么做的。只是想知道。我写了一个更详尽的解释作为回答。因为通常页面不轻,连接不快,很多人都会犯这个错误,而且会被一次又一次地复制。但是这两个过程(DOM构建和资源加载)是并行的,正如您刚刚体验到的,在某些情况下,您无法绑定
w.load
inside
d.ready
。非常感谢您的回答!