jQuery其他方法及插件使用

news/2024/7/11 1:55:24 标签: jquery, javascript

1. 拷贝对象

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../jQuery.min.js"></script>
</head>

<body>
    <!-- 
        ```jQuery.extend() 函数用于将一个或多个对象的内容合并到目标对象```; 
        如果想要把某个对象拷贝给另给一个对象使用,此时就要使用 $.extend([deep], target, object1, [objectN])方法了!
        深拷贝和浅拷贝; 
        deep:    true为深拷贝, 默认false为浅拷贝; 
        target:  要拷贝的目标对象; 
        object1: 待拷贝到第一个对象的对象; 
     -->
    <script>javascript">
        $(function () {
            var targetObj = {};
            var obj = {
                id: 1,
                name: "tom"
            }
            $.extend(targetObj, obj); //把obj拷贝给targetObj
            console.log(targetObj);
            console.log('------------------------');


            var _targetObj = {
                id: 0
            };
            var _obj = {
                id: 8998,
                name: "andy"
            };
            $.extend(_targetObj, _obj);
            console.log(_targetObj);    // _targetObj原来的id被覆盖掉了, 同时name被添加进去了
            console.log('-------------------------');

            //深浅拷贝
            //1. 浅拷贝:只是把被拷贝对象的 【复杂数据类型中的地址给目标对象】,修改目标对象会影响被拷贝对象!
            // 默认是false,浅拷贝; 
            console.log('----浅拷贝-----');
            var __targetObj = {
                id: 0,
                msg: {
                    sex: 'man'
                }
            };
            var __obj = {
                id: 888,
                msg: {
                    age: 18
                },
                name: "andy"
            };
            $.extend(__targetObj, __obj);
            __targetObj.msg.age = 89;
            console.log(__targetObj);     // msg整体被覆盖, name被添加进去了
            console.log(__obj);           // 和__targetObj内容是一样的
            /*
                此时__targetObj 和 __obj中复杂类型msg对象的地址都是一样的, 
                而后又修改了msg中的age, 所以最终__targetObj和__obj的结果应该是一样的; 
                对于简单数据类型来说:和目标对象相同的直接覆盖,其他直接追加进目标对象当中: 如id发生覆盖,name进行追加; 
                {
                    id: 888,
                    msg: { age: 89 }
                    name: 'andy'
                }
            */
            


            //2. 深拷贝: 两个对象,仅仅是值的拷贝,单独有内存空间, 互不影响
            console.log('----深拷贝-----');
            var ___targetObj = {
                id: 0,
                msg: {
                    sex: 'man'
                }
            };
            var ___obj = {
                id: 888,
                msg: {
                    age: 18
                },
                name: "andy"
            };
            $.extend(true, ___targetObj, ___obj);
            ___targetObj.msg.age = 999;
            console.log(___targetObj);  // id被替换了, msg进行了合并 
            console.log(___obj);        // ___obj保持原样
            /*
                此时___targetObj 和 ___obj对象中的复杂类型msg对象的地址都不一样,各是各的,彼此互不影响;
                所以最终结果:
                    ___targetObj
                        {
                            id: 888,
                            msg: { sex: 'man', age: 999 }
                            name: 'andy'
                        }
                        
                    ___obj 
                        {
                            id: 888
                            msg: { age: 18 }
                            name: 'andy'
                        }
            */
        });
    </script>
</body>

</html>

2. 多库共存

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../../jQuery.min.js"></script>
</head>
<body>
    <div></div>
    <span></span>
    <!-- 
        jQuery使用$作为标识符, 随着jQuery的流行, 其他js库也可能用$作为标识符, 这样一起使用会产生冲突; 
        此时需要一个解决方案, 让jQuery和其他js库不存在冲突, 可以同时存在, 这就叫做多库共存. 
        解决方案:
            1. 如果$产生了冲突, 那么干脆在jQuery中使用jQuery来代替$; jQuery("div")
            2. jQuery变量规定新的名称: $.noConflict(),  var xx = $.noConflict();  xx(""); 
     -->
     <script>javascript">
         $(function() {
             //自己封装的函数, 使用了$作为函数名; 
             function $(ele) {  
                 return document.querySelector(ele);
             }
             console.log($("div"));


             var _SB = jQuery.noConflict(); //好比说这个_SB变量就相当于之前直接使用$(), jQuery()的那种形式
             console.log(_SB("div"));
             console.log(_SB("span"));
         })
     </script>
</body>
</html>

3. 插件

案例gitee地址:
https://gitee.com/studyCodingEx/studys
在这里插入图片描述

3.1 init

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 
        jQuery功能有限, 想要更复杂的效果, 可以借助jQuery插件完成; 
        注意:这些插件都是依赖于jQuery来完成的, 所以必须先引入jQuery文件, 因此也称为jQuery插件; 
        jQuery之家:http://www.htmleaf.com/
        jQuery插件库:http://www.jq22.com/
     -->
</body>
</html>

3.2 瀑布流
请添加图片描述

3.3 图片懒加载

请添加图片描述

3.4 全屏滚动

请添加图片描述

3.4 bootStrap-Js插件

请添加图片描述

3.5 阿里百秀

请添加图片描述

3.6 toDoList

请添加图片描述


http://www.niftyadmin.cn/n/370702.html

相关文章

2024考研408-计算机组成原理第一章-计算机系统概述

文章目录 起步&#xff1a;认识计算机一、计算机发展历程1.1、什么是计算机系统1.2、计算机硬件的发展1.2.1、总览四代发展1.2.2、四代发展详细介绍1.2.3、计算机硬件的发展历史1.2.4、摩尔定律介绍 1.3、计算机软件的发展1.3.1、软件的发展1.3.2、目前的发展趋势 知识回顾与重…

ChatGPT 与我合力开发 xargin blog archive 插件:曹大博客的新奇探险

之前写的批量删除 chatGPT 对话的插件[1]&#xff0c;最近我收到了一个五星好评&#xff1a; 虽然不赚钱&#xff0c;交个朋友嘛&#xff0c;还是挺高兴的。而且借助 chatGPT&#xff0c;我是在与全世界的用户交流&#xff0c;想想就激动。 最近我发现自己让 chatGPT 帮忙写前端…

用Python让小朋友的手绘图跳起来(附源码)

大家好&#xff0c;我是小F&#xff5e; 今天给大家介绍一个非常有趣的项目&#xff0c;基于AI识别&#xff0c;制作儿童手绘图舞蹈图。 只需几分钟&#xff0c;就能自动生成儿童手绘人物或类人角色&#xff08;即具有双臂、两条腿等的角色&#xff09;的动画&#xff0c;而且生…

软考A计划-试题模拟含答案解析-卷八

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

炸裂!GPT-4 开始自主进化,打造一个虚拟世界!

公众号关注 “GitHubDaily” 设为 “星标”&#xff0c;每天带你逛 GitHub&#xff01; 此前 GitHub 曾诞生过一个名为 Auto-GPT 的开源项目&#xff0c;让 AI 能够根据人类给出的目的&#xff0c;自动设定任务的优先级&#xff0c;尝试自行优化代码、自动改 Bug 等操作。不得不…

Pyside6-第二篇-QPushButton一个普通按钮

今天是Pyside6的第二篇内容。一起来看一个普通的按钮。 QPushButton。 from PySide6.QtWidgets import QWidget, QApplication, QPushButtonapp QApplication([])win QWidget() win.setWindowTitle("QPushButton按钮")btn QPushButton(win) btn.setText("触发…

微信的大动作,很多人要颤抖了

4月25日&#xff0c;微信团队发布关于微信公众号营销内容合规规范通知&#xff0c;要求公众号在投放商业广告时需要标注广告字样。 刚开始觉得也没啥&#xff0c;无非就是加个广告的字样&#xff0c;让消费者可以及时识别出来&#xff0c; 但从效果来看&#xff0c;似乎效果并不…

HDFS部署常见问题总结

HDFS部署的常见问题总结&#xff1a; 一、部署细节问题 是否遗漏了前置准备章节的相关操作&#xff1f;是否遗漏了将文件夹(hadoop安装文件夹&#xff0c;/data数据文件夹) chown授权到hadoop用户这一操作是否遗忘了格式化hadoop这一步&#xff08;hadoop namenode -format&a…