jQuery 入口函数

  • JavaScript和jQuery之间的入口函数有一些区别
  • JS的window.onload事件必须要等到所有内容,以及外部图片之类的文件加载完之后,才会去执行。
  • JQuery入口函数是在所有标签加载完之后,就会去执行。

加载模式

  • 原生JS和jQuery入口函数的加载模式不同
  • 原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
  • jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行
    代码举例:
<!DOCTYPE>
<html lang="en">
<head>
  <meta="UTF-8">
  <title>JS和jQuery的区别</title>
  <script src = "js/jquery-1.12.4.js">
  <script>
//原生JS
    window.onload = function(ev){
      //1.通过原生的JS入口函数可以拿到DOM元素
      var img = document.getElementByTagName("img")[0];
      console.log(img);   //输出 img 路径
      //2.通过原生的JS入口函数可以拿到DOM元素的宽高
      var width = window.getComputedStyle(img).width;   '//输出 img 宽度(px)'
    }

//jQuery
    $(document).ready(function(){
      //1.通过jQuery入口函数也可以拿到DOM元素
      var $img = $("img")[0];
      console.log($img);  //输出 img 路径
      //2.通过jQuery入口函数拿不到DOM元素的宽高
      var $width = $img.width;
      console,log($width);  // 输出 0
    });
  </script>
</head>
<body>
  <img src="/img/image.jpg">
</body>

函数覆盖问题

  • 原生JS如果编写了多个入口函数,后面编写的入口函数会覆盖前面的
  • jQuery中编写多个入口函数,后面的不会覆盖前面的
    代码举例:
<!DOCTYPE>
<html lang="en">
<head>
  <meta="UTF-8">
  <script src = "js/jquery-1.12.4.js">
  <script>
/*JS*/
    window.onload = function(ev){
      alert("hello oneJS");
    }

    window.onload = function(){
      alert("hello twoJS");
    }
//输出结果:弹出 hello twoJS

//jQuery
    $(document).ready(function(){
      alert("jQuery1");
    });

    $(document).ready(function(){
      alert("jQuery2");
    });
//输出结果为:先弹出 jQuery1 ,然后弹出 jQuery2
  </script>
</head>
<body>
  <img src="img/image">
</body>

jQuery入口函数的几种写法

  • 常用的是下面的第三种写法,因为最简短
//1.第一种写法
$(document).ready(function(){
  console.log("111");
})

//2.第二种写法
jQuery(document).ready(function(){
  console.log("222");
})

//3.第三种写法(推荐写法)
$(function(){
  console.log("333");
})

//4.第四种写法
jQuery(function(){
  console.log("444");
})

jQuery冲突问题

  • 比如其他框架也使用了 $ 符号,后引入的 script 文件会覆盖掉先引入的文件下的 $ 符号
//1.释放 $ 的使用权
//注意点:释放操作必须在编写其他jQuery代码之前编写
//  释放之后引用jQuery代码不能再使用 $ 符号,改为使用jQuery
jQuery.noConflict();  // 释放 $ 的使用权
$(function(){
  console.log("其它框架");
})
jQuery(function(){
  console.log("jQuery框架");
})

// 2.自定义访问 jQuery 的符号
var nj = jQuery.noConflict();
nj(function(){
  console.log("自定义访问 jQuery 符号");
})

jQuery核心函数

// $(); 就代表jQuery的核心函数

//1.接收一个函数
$(function(){
 console.log("函数");
})

//2.接收一个字符串
 //2.1 接收一个字符串选择器
 //返回一个jQuery对象,对象中保存了找到的DOM元素
 var $box1 = $(".box1");
 var $box2 = $("#box2");
 console.log($box1); // <div class=".box1"></div>
 console.log("$box2");// <div id="box2"></div>

 //2.2接受一个字符串代码片段 
 //返回一个jQuery对象,对象中保存了创建的DOM元素
 var $p = $("<p>我是段落</p>");
 console.log($p); //<p>我是段落</p>
 $box1.append($p); //将创建的段落添加到DOM中

//3.接收一个DOM元素
//会被包装成一个jQuery对象返回给我们
var span = document.getElementByTagName("span");
console.log(); //<span></span>
var $span = $(span);
console.log($span);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值