当页面加载时,我让这个JS在包装器中淡出:
$(window).on('load', function(){
$(".wrapper").fadeIn();
...
});
它适用于单个页面,但不适用于任何其他页面
在那里,包装器不会淡入。
我尝试了一个console.log
,但这也没有用,所以函数根本没有执行。
JS文件通过PHP-include加载:
<?php
include 'website/inc/head.php';
?>
head.php
加载main.js
。每个页面都是一样的。但它不会在除了一个页面之外的所有页面上执行该功能。
顺便说一句,我使用$(window).on('load', function(){...});
,因为在使用a.indexOf is not a function
时出现$(window).load(function(){...});
错误
答案 0 :(得分:1)
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
});
})
解析$(document).ready
时,main.js
内的代码不会被应用,但ready
会在$(document)
时触发。
$(document).ready()
会激活
(基本上,浏览器符合</html>
标记)。
$(window).load()
将触发。
当document.ready
事件触发时,将应用该函数内的代码,同时浏览器继续加载资源。
如果页面非常轻且与服务器的连接速度非常快,则window.load
将在浏览器完成从$(document)ready(...)
应用代码之前触发。因此,在window.load
已经解雇后,它可能会绑定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`
});