jQuery的第一天~

108 阅读1分钟

「这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战

jQuery和js的入口函数的区别

第一节

<body>
    <img src="https://i0.hdslb.com/bfs/feed-admin/d42ae546f79fbd53ff22a3b0ba507d3d9b0f18ea.jpg@880w_388h_1c_95q" alt=""></img>
</body>

原生:

  1. 通过原生的JS入口函数可以拿到DOM元素
  2. 通过原生的JS入口函数可以拿到DOM元素的宽高
         window.onload=function(ev){   
            var img=document.getElementsByTagName("img")[0];
            console.log(img);

            var width=window.getComputedStyle(img).width;
            console.log('onland',width);    
        }  

结果:

image.png

jQuery:

  1. 通过jQuery入口函数可以拿到DOM元素
  2. 通过jQuery入口函数不可以拿到DOM元素的宽高
        $(document).ready(function(){
            
            var $img=$("img");
            console.log($img);

            var $width=$img.width();
            console.log('jquery',$width);
        });

结果:

image.png

总结:原生JS和jQuery入口函数的加载模式的不同?

  • 原生JS会等到DOM元素加载完毕,并且图片也加载完毕才会执行
  • jQuery会等到DOM元素加载完毕,但不会等到图片也加载完毕就会执行

第二节

多个入口函数覆盖情况

js入口函数代码:

       window.onload=function(){
           alert("onload1");
       }
       window.onload=function(){
           alert("onload2");
       }

jQuery入口函数代码:

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

结果弹窗顺序为:jQuery1->jQuery2->onload2

jQuery入口函数的书写方式:

方式一:

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

方式二:

     jQuery(document).ready(function(){
         alert("hello jQuery2");
     });

方式三:(推荐)

     $(function(){
         alert("hello jQuery3");
     });

方式四:

     jQuery(function(){
         alert("hello jQuery4");
     });

总结:

  • 原生的JS如果编写了多个入口函数,后面编写的函数会覆盖前面编写的

  • jQuery中编写的多个入口函数,后面编写的不会覆盖前面编写的

第三节

释放$的使用权

此方法用于避免其他使用 $ 的地方与jQuery本身产生冲突。

注意点:

  • 释放操作必须在编写其他jQuery代码之前编写
  • 释放后就不能再使用$,改为使用jQuery
    jQuery.noConflict();  //释放$对jQuery的调用权限

自定义一个访问符号,释放$使用权并将调用jQuery的权限赋给xy;

    var xy=jQuery.noConflict();
    xy(function(){
        alert("hello jQuery");
    });

结果:

image.png