最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • JQuery 初次体验

    正文概述 掘金(Kenguba)   2021-04-04   670

    JavaScript 与 JQuery的关系

    jQuery是JavaScript库中的一种,JavaScript库也可以叫JavaScript函数库
    封装了很多js代码的一个js文件就是一个库。 Prototype、YUI(网络反响一般)、Dojo、ExtJS、jQuery等 都是JS库

    jQuery 优点

    写的少做的多,体积小,功能强大,链式编程,隐式迭代.插件丰富,开源,免费,兼容性强

    jQuery的js文件

    jquery-1.12.1.js      //正常的代码文件
    jquery-1.12.1.min.js  //压缩的代码文件,上线的时候使用压缩的
    
    //线上CDN
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.1/jquery.js"></script>
    <script src="https://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.1.min.js"></script>
    <script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
    

    JQuery中的顶级对象

    JQuery -- 可以用$符号来代替
    JQuery 的JS文件中的所有的东西都是jQuery或者都是$符号下的

    • 如果想要使用jQuery中的属性或者方法,那么需要 jQuery.属性jQuery.xxx() 来使用
    • 简单的写法: $.属性 $.方法
    • 大多数情况下,jQuery中几乎都是方法,属性很少
    • JQuery中几乎把DOM中的事件都封装成了一个方法,在jQuery中几乎是把on去掉,然后变成方法了
    //jQuery中注册事件
    $("选择器").click(匿名函数);
    
    //DOM中注册事件
    document.getElementById("id属性值").onclick=匿名函数;
    
    • 浏览器中的顶级对象:window,浏览器中和页面中所有的东西都是window的
    • 页面中的顶级对象:document,页面中某些东西是document

    jquery加载

    JS DOM中页面加载事件

    window.onload = function () {
      console.log("好帅");
    };
    
    window.onload = function () {
      console.log("哈哈,我又变帅了");
    };
    
    /* 
    哈哈,我又变帅了
    */
    

    ⚠️注意: 页面全部加载完毕才触发(标签,文字,图片,引入的文件)

    JQuery中页面加载的事件

    // 方法1
    $(window).load(function () {
      console.log("第1种页面加载的事件");
    });
    
    // 方法2
    // 这种采用的事件比方法1快,页面中的基本的元素加载后就触发
    $(document).ready(function () {
      console.log("第2种页面加载的事件");
    });
    
    // 方法3
    // 页面中基本的元素加载后就触发了
    jQuery(function () {
      console.log("第3种页面加载的事件");
    });
    
    //简写
    $(function(){ })
    

    window.onload 和 $(function) 区别

    • window.onload 只能定义一次,如果定义多次,后边的会将前边的覆盖掉
    • $(function) 可以定义多次的

    jQuery对象和DOM对象互转的问题

    jq -> js
    jq对象[索引] 或者 jq对象.get(索引)
    
    js -> jq
    $(js对象)
    
    
    
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/2.2.1/jquery.js"></script>
    <button id="btn">按钮</button>
    <script>
      var btn = document.getElementById("btn");
      // DOM对象转jQuery对象
      $(btn).click(function () {
        alert("JQ注册点击事件");
      });
      // //错误的
      // btn.click(function () {
      //   alert("哈哈,小苏太帅了");
      // });
    
    
      //jQuery对象转DOM对象
      var btn2 = $("#btn");
      btn2[0].onclick = function () {
        alert("哈哈,我又变帅了");
      };
      // //错误的
      // btn2.onclick = function () {
      //   console.log("助教比小杨帅");
      // };
    </script>
    

    为什么要把DOM对象转jQuery对象,为什么又把jQuery对象转DOM对象?

    • DOM操作很麻烦(兼容,一个功能写好多代码) -> 转jQuery对象,操作简单(使用jQuery中的方法或属性),不需要写兼容,
    • jQuery操作中有一些兼容没封装在jQuery中,转DOM对象,通过原生的js代码实现功能,如果后面都解决了,又想简单的写代码操作内容,再转回jQuery对象

    ⚠️注意: DOM对象调用jQuery的方法不能实现,必须是jQuery对象调用jQuery的方法

    开关灯案例

    DOM版本

    <input type="button" id="btn" value="开灯">
    <style>.cls{background-color: black;}</style>
    <script>
      document.getElementById("btn").onclick = function () {
        var body = document.body;
        if (body.className == "cls") {
          body.className = "";
          this.value = "关灯";
        } else {
          body.className = "cls";
          this.value = "开灯";
        }
      };
    </script>
    

    JQ版本

    <script src="https://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
    
    <input type="button" id="btn" value="开灯">
    <style>
      .cls { background-color: black; }
    </style>
    <script>
    
      //方法1 
      // $("#btn").click(function () {
      //   if ($(this).val() == "开灯") {
      //     $("body").css("background-color", "black");
      //     $(this).val("关灯");
      //   } else {
      //     $("body").css("background-color", "gray");
      //     $(this).val("开灯");
      //   }
      // })
    
      //方法2
      $("#btn").click(function () {
        $("body").hasClass("cls") ? $(this).val("开灯") : $(this).val("关灯")
        $("body").hasClass("cls") ? $("body").removeClass("cls") : $("body").addClass("cls")
      });
    </script>
    

    下载网 » JQuery 初次体验

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元