一个页面如果有多个window.onload,只会执行最后一个window.onload,这是因为覆盖了前面的window.onload。
window.addEventListener('load',function(){ console.log(1); }) window.addEventListener('load',function(){ console.log(2); })用addEventListener可以绑定多个监听函数。
一个页面中可以有很多个$(document).ready。
(1)解析HTML结构 (2)加载外部脚本和样式表文件 (3)解析并执行脚本代码 (4)构造HTML DOM模型//ready (5)加载图片等外部文件 (6)页面加载完毕//load load事件必须等到网页中所有内容全部加载完毕之后才被执行。如果一个网页中有大量的图片的话,则就会出现这种情况:网页文档已经呈现出来,但由于网页数据还没有完全加载完毕,导致load事件不能够即时被触发。 ready事件在DOM结构绘制完成之后就绘执行。这样能确保就算有大量的媒体文件没加载出来,JS代码一样可以执行。
index.html
<div> 1 </div> <div id="box2"> 2 </div> <script src="1.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="2.js"></script> <script src="3.js"></script>1.js
var $=function(id){//自定义了$,先引入1.js再引入jquery.js return document.getElementById(id); }2.js
jQuery.noConflict();//让Jquery放弃对$的所有权,否则后引入的jquery占有$的所有权。如果先引入jquery再引入1.js,则不用这句代码 jQuery(function($){//传入参数$,在内部使用jquery的$ var a=$('div').html(); console.log(a); }); //或者 jQuery.noConflict(); (function($){ var a=$('div').html(); console.log(a); })(jQuery)3.js
var box=$('box2'); console.log(box.innerHTML);index.html
<div id="box1"> 1 </div> <div id="box2"> 2 </div> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> <script src="1.js"></script> <script src="2.js"></script> <script src="3.js"></script>1.js
var $=function(id){ return document.getElementById(id); }2.js
var $j=jQuery.noConflict();//自定义jquery的别名3.js
var box=$('box2'); console.log(box.innerHTML); var box2=$j('#box1'); console.log(box2.html());