1.原生 JS与Jquery 入口函数加载模式不同(只有script 放在文档上面时 才使用的入口函数)
JS 入口加载函数 window.onload = function(){ }
原生js 会等到DOM元素加载完毕,并且 元素中的 src 也加载完毕才会执行
JQuery 入口函数 $(document).ready(function(){ }) 和 $(function(){ }) $代表 jQuery
jQuery 会等到DOMTree 解析完毕就执行(也就是 浏览器知道DOM元素的你是个啥就好 不用知道你具体是啥) 不会等到所有的DOM 元素解析加载完成时 执行
alert("a");
})
JS 入口加载函数 window.onload = function(){ }
原生js 会等到DOM元素加载完毕,并且 元素中的 src 也加载完毕才会执行
JQuery 入口函数 $(document).ready(function(){ }) 和 $(function(){ }) $代表 jQuery
jQuery 会等到DOMTree 解析完毕就执行(也就是 浏览器知道DOM元素的你是个啥就好 不用知道你具体是啥) 不会等到所有的DOM 元素解析加载完成时 执行
2. 原生JS 如果写入了多个入口函数 后面的入口函数 会覆盖前面的(存在多个时 会执行最后一个)
使用JQuery写入多个入口函数 后面写的入口函数 不会覆盖先写的入口函数(存在多个时 会依次执行)
当多个使用其它框架或者js包时 $符号会在框架及包中 进行多次引用 这样 jQuery 中的$ 符号可能会失灵
解决方案1, 释放$使用权 在jQuery 代码前 写入 jQuery.noConflict(); 在这条代码之后的代码 $都该为jQuery $失效
//注意 释放操作必须放在编写其他 jQuery代码之前写入 写入后 jQuery的代码中的$ 被jQuery取代
jQuery.noConflict();
$(function () {alert("a");
})
报错信息: Uncaught TypeError: $ is not a function
解决方案2,自定义访问符号
var jq = jQuery.noConflict(); //意义将$释放 改为使用jq