jQuery 其他方法

文章目录

  • 1. jQuery 拷贝对象
  • 2. 多库共存
  • 3. jQuery 插件
    • 3.1 瀑布流插件
    • 3.2 图片懒加载技术
    • 3.3 bootstrap JS 组件
    • 3.4 bootstrap JS 插件
      • *案例--todolist布局

1. jQuery 拷贝对象

在这里插入图片描述

在这里插入图片描述
拷贝过去的对象属性值会覆盖原来对象的值。

**浅拷贝:**简单数据类型就直接被拷贝,复杂数据类型就只拷贝过去地址;修改目标对象会影响被拷贝对象。

示例:将obj 拷贝给targetObj
在这里插入图片描述
**深拷贝:**指的是完全克隆,修改目标对象不会影响被拷贝对象。

示例:将obj 拷贝给targetObj
在这里插入图片描述

2. 多库共存

在这里插入图片描述
在这里插入图片描述

3. jQuery 插件

在这里插入图片描述

3.1 瀑布流插件

瀑布流效果:
在这里插入图片描述

  1. 下载插件zip
  2. 复制插件的css 和js 文件
  3. 创建自己的index.html
  4. 在index.html 中引入下载好的css 和js 文件
  5. 引入插件index.html 中的内嵌style 和script
  6. 复制插件index.html 中想要的html 部分

在插件说明文档中都有相应配置参数的解释,在使用插件时可以查看。

3.2 图片懒加载技术

图片懒加载技术 ---- 图片使用延迟加载可以提高网页下载速度;同时减轻服务器负载。

当页面滑到可视区时再加载相应图片
在这里插入图片描述
在这里插入图片描述
在html 文件中使用ctrl + H 使用查找/替换可以把某些代码替换。
在这里插入图片描述
懒加载插件必须在所有图片下面引入!

3.3 bootstrap JS 组件

在这里插入图片描述

在这里插入图片描述
bootstrap JS 组件 就是把网页中常用的一些功能组合到了一起,我们只需要复制粘贴就能使用了。

3.4 bootstrap JS 插件

在这里插入图片描述
在这里插入图片描述

*案例–todolist布局

在这里插入图片描述
重点练习本地存储!
在这里插入图片描述
在这里插入图片描述

1. 本地存储里只能存储字符串数据格式,把我们的数组对象转换为字符串格式 JSON.stringify()
在这里插入图片描述
2. 获取本地存储的数据,我们需要把里面的字符串数据转换为原先的对象格式 JSON.parse()
在这里插入图片描述

获取键盘、鼠标的状态(按下,点击等)需要使用到事件对象event!

索引号一般都是给相邻的亲兄弟( li )设置:

 <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>

而遇到表兄弟( a )时一般我们会给他们设置自定义属性记录索引号

<ul>
        <li><a href="#"></a></li>
        <li><a href="#"></a></li>
        <li><a href="#"></a></li>
        <li><a href="#"></a></li>
    </ul>

知识回顾:数组删除数据使用splice(从哪个位置开始删除, 删除多少个数据)。

$(function () {
    // 1. 按下回车 把完整数据存储到本地存储里
    // 存储的数据格式var todolist=[{title:"xxx",done:false}]
    load();
    $("#title").on("keydown", function (event) {
        if (event.keyCode === 13) {
                
            if ($(this).val() === "") {
                alert("请输入您要的操作");
            } else {
             // 读取本地存储数据 因为完成待办事项或者删除事项等多个功能都需要先去读取本地数据
                // 所以可以直接封装在函数中 每次使用时直接调用即可
                var local = getData();
                // 把最新的数据追加给本地存储
                local.push({ title: $(this).val(), done: false });
                // 把数组信息保存到本地存储
                saveDate(local);
                // 把本地存储数据渲染加载到页面中
                load();
            }
        }
    });
    
    // 3. 删除操作
    $("ol, ul").on("click", "a", function () {
        // 先获取数据 再是修改数据 存入数据 重新渲染加载数据
        var data = getData();
        var index = $(this).attr("id");
        data.splice(index, 1);
        saveDate(data);
        load();
    });
    // 4.已经完成和正在进行操作
    $("ol, ul").on("click", "input", function () {
        // 先获取数据 再是修改数据 存入数据 重新渲染加载数据
        var data = getData();
        var index = $(this).siblings("a").attr("id");
        data[index].done = $(this).prop("checked");
        saveDate(data);
        load();
    });
    
    function getData() {
        var data = localStorage.getItem("todolist");
        if (data !== null) {
            //本地存储里面的数据是字符串格式的但是我们需要的是对象格式的
            return JSON.parse(data);
        } else {
            return [];
        }
    };
    // 保存本地存储数据
    function saveDate(data) {
        localStorage.setItem("todolist", JSON.stringify(data));
    };
    // 渲染本地存储数据
    function load() {
        var data = getData();
        var todoCount = 0;
        var doneCount = 0;
        // 遍历数据
        // 遍历之前要先清除ol 里面的元素内容 不然本来打开页面就先会渲染加载本地数据 结果又添加事项之后再次渲染加载了页面
        // 就会出现重复数据
        $("ol,ul").empty();
        $.each(data, function (i, n) {
            if (n.done) {
                $("ul").prepend("<li><input type='checkbox' checked='checked'> <p>" + n.title + "</p> <a href='#'id=" + i + "></a> </li>");
                doneCount++;
                
            } else {
                $("ol").prepend("<li><input type='checkbox'> <p>" + n.title + "</p> <a href='#'id=" + i + "></a> </li>");
                todoCount++;
            }
            // 5.统计完成个数和未完成个数

        });
        $("#todocount").text(todoCount);
        $("#donecount").text(doneCount);

    }
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/480978.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第十三届蓝桥杯物联网试题(省赛)

做后感悟&#xff1a; OLED显示函数需要一直显示&#xff0c;所以在主函数中要一直循环&#xff0c;为了确保这个检错功能error只输出一次&#xff0c;最好用中断串口进行接收数据&#xff0c;数据收完后自动进入中断函数中&#xff0c;做一次数据检查就好了&#xff0c;该开灯…

正基塑业邀您参观2024长三角快递物流供应链与技术装备展览会

2024.7.8-10 杭州国际博览中心 科技创新&#xff0c;数字赋能 同期举办&#xff1a;数字物流技术展 新能源商用车及物流车展 电商物流包装展 冷链物流展 展会介绍 2024长三角快递物流供应链与技术装备展览会&#xff08;杭州&#xff09;&#xff0c;于2024年7月8-10日在杭州…

QGraphicsView 实例3地图浏览器

主要介绍Graphics View框架&#xff0c;实现地图的浏览、放大、缩小&#xff0c;以及显示各个位置的视图、场景和地图坐标 效果图: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…

Tomcat 服务器部署和 IDEA 配置 Tomcat

(一) Tomcat 简介 Tomcat是Apache软件基金会一个核心项目&#xff0c;是一个开源免费的轻量级Web服务器&#xff0c;支持Servlet/JSP少量JavaEE规范。 概念中提到了JavaEE规范&#xff0c;那什么又是JavaEE规范呢? JavaEE: Java Enterprise Edition,Java企业版。指Java企业级…

【Java初阶(二)】分支与循环

❣博主主页: 33的博客❣ ▶文章专栏分类: Java从入门到精通◀ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; 目录 1.前言2.顺序结构3.分支循环3.1if语句3.2switch语句 4.循环结构4.1while循环4.2 break和continue4.3 for循环4.4 do while循环 5.输入输出5.1输出5.2输…

三级数据库技术知识点(详解!!!)

1、从功能角度数据库应用系统可以划分为表示层、业务逻辑层、数据访问层、数据持久层四个层次&#xff0c;其中负责向表示层直接传送数据的是业务逻辑层。 【解析】表示层负责所有与用户交互的功能;业务逻辑层负责根据业务逻辑需要将表示层获取的数据进行组织后&#xff0c;传…

提升Midjourney风格化的三个技巧

1. 引言 在前篇博文中&#xff0c;我们详细讲述了Midjourney的新功能风格参考的一些基础使用方法&#xff0c;事实上我们可以通过控制参数和提示权重进行更多的自定义操作&#xff0c;在本文中&#xff0c;我将向大家介绍我在网上搜集到的一些提升风格化效果的三个技巧。 闲话…

阿里云服务器租用一年多少钱?2024年最新阿里云租用价格

2024年阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核4G服务…

NC 现金流量查询 节点 多账簿联查时,根据所选择的列来判断明细和现金流量联查按钮是否可用,根据添加列选择监听事件处理。

NC 现金流量查询 节点 多账簿联查时&#xff0c;根据所选择的列来判断明细和现金流量联查按钮是否可用&#xff0c;如下图的情况&#xff1a; 在现金流量查询界面UI类的initTable(QueryConditionVO conVO)方法中添加列选择监听事件即可&#xff0c;如下&#xff1a; // 列监听…

【Android】【Bluetooth Stack】蓝牙电话协议之拨打电话分析(超详细)

1. 精讲蓝牙协议栈&#xff08;Bluetooth Stack&#xff09;&#xff1a;SPP/A2DP/AVRCP/HFP/PBAP/IAP2/HID/MAP/OPP/PAN/GATTC/GATTS/HOGP等协议理论 2. 欢迎大家关注和订阅&#xff0c;【蓝牙协议栈】和【Android Bluetooth Stack】专栏会持续更新中.....敬请期待&#xff01…

【Spring框架】单元测试:JUnit

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

Filter介绍使用案例

文章目录 一、Filter概念二、Filter快速入门定义类&#xff0c;实现Filter接口&#xff0c;并重写其所有方法 三、Filter执行流程四、Filter使用细节1、Filter拦截路径配置2、过滤器链 五、案例 一、Filter概念 二、Filter快速入门 定义类&#xff0c;实现Filter接口&#xff0…

cc-inputSelView:使用uni-app和原生input组件实现用户位置选择功能

摘要&#xff1a; 在前端开发中&#xff0c;为用户提供选择位置的功能是一个常见的需求。本文将介绍如何使用uni-app和原生input组件实现用户位置选择功能&#xff0c;包括地图定位和页面跳转选择数据两种方式。通过这种方式&#xff0c;开发者可以轻松地为用户提供便利的位置选…

基于Java-SpringBoot+vue实现的前后端分离信息管理系统设计和实现

基于Java-SpringBootvue实现的前后端分离信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…

停车场引导和道闸系统工程

在当今快速发展的都市环境中&#xff0c;停车场不再是简单的泊车空间&#xff0c;而是需要智能化、高效化的管理来满足日益增长的车辆需求。现代电子信息技术的融入使得停车场引导和道闸系统工程成为可能&#xff0c;为城市交通带来革命性的变化。本文将概述这一系统的主要组成…

为什么光模块会发生故障?

当SFP光模块发生故障时&#xff0c;技术人员需要立即找出原因并进行修复&#xff0c;否则&#xff0c;1G链路可能会中断。本指南将为初次接触光模块领域的企业提供一些SFP光模块修复解决方案的支持。 SFP光模块故障的主要原因 SFP光模块故障通常发生在发送端和接收端。最常见…

C++之constexpr和常量表达式

常量表达式 常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。 显然&#xff0c;字面值属于常量表达式&#xff0c;用常量表达式初始化的const对象也是常量表达式。 后面将会提到&#xff0c;C语言中有几种情况下是要用到常量表达式的。…

35 跨域相关问题, 以及常见的解决方式

前言 跨域相关 这是一个 经常会碰到的问题 然后 常见的解决方式 也大概就是几种, 各有各的问题 这里仅仅是 从理论上 来探讨这个问题 主流的解决方式 是通过代理, 将不同域 合并到同一个域 测试用例 测试用例如下, 这里仅仅是一个简单的数据展示 获取对方 “/config.jso…

由浅到深认识Java语言(17):内部类

该文章Github地址&#xff1a;https://github.com/AntonyCheng/java-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.c…

python框架的一加剧场管理系统的设计与实现flask-django-nodejs-php

本文讲述了一加剧场管理系统。结合电子管理系统的特点&#xff0c;分析了一加剧场管理系统的背景&#xff0c;给出了一加剧场管理系统实现的设计方案。 本论文主要完成不同用户的权限划分&#xff0c;不同用户具有不同权限的操作功能&#xff0c;在用户模块&#xff0c;主要有用…