jQuery-入口函数,$冲突问题
原生js和jQuery加载模式不同
- 原生js会等DOM加载完成,图片等资源也加载完成再执行;
- jQuery会等DOM加载完成,但不会等图片等资源加载完成就会执行。
多个入口函数
- 原生js如果编写了多个入口函数,后面编写的会覆盖前面编写的。
window.onload = function(e){
console.log("hello1");
}
window.onload = function(e){
console.log("hello2");
}
//hello2
2.jQuery的入口函数如果编写了多个,后面写的不会覆盖前面的。
$(document).ready(function(){
console.log("hello1");
})
$(document).ready(function(){
console.log("hello2");
})
//hello1
//hello2
jQuery入口函数的其他写法
- 第一种写法
$(document).ready(function(){
console.log("hello1");
})
- 第二种写法
jQuery(document).ready(function(){
console.log("hello1");
})
- 第三种写法
$(function(){
console.log("hello1");
})
- 第四种写法
jQuery(function(){
console.log("hello1");
})
jQuery冲突问题
如果引入了多个框架,并其他框架也引入了$的冲突解决办法:
- 1.释放$的使用权;
- 2.自定义一个访问符号。
//解决方法:
//1.释放$的使用权;
//注意点:释放操作必须在编写其他jQuery代码之前编写,释放之后就不能再使用$,改用jQuery。
jQuery.noConflict();
jQuery(function(){
alert("hello");
})
//2.自定义一个访问符号
var jq = jQuery.noConflict();
jq(function(){
alert("hello");
})