jquery-事件、动画效果、each、.data()、表格增删改

2024-08-31 22:32

本文主要是介绍jquery-事件、动画效果、each、.data()、表格增删改,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

      • 事件
      • 动画效果
      • each
      • data
      • 实现表格的增删改

事件

常用事件

click(function(){...})
hover(function(){...})
blur(function(){...})
focus(function(){...})
change(function(){...})
keyup(function(){...})

事件绑定

    .on( events [, selector ],function(){})events: 事件selector: 选择器(可选的)function: 事件处理函数

移除事件

    .off( events [, selector ][,function(){}])off() 方法移除用[ .on()绑定的事件处理程序。events: 事件selector: 选择器(可选的)function: 事件处理函数

事件委托

事件委托是通过事件冒泡的原理,利用父标签去触发子标签的事件。

示例:

表格中每一行的编辑和删除按钮。

// 事件委托的方式$("tbody").on("click", ".delete", function () {// this 当前点击的标签// 删除当前行$(this).parent().parent().remove();})

动画效果

// 基本
show([s,[e],[fn]])
hide([s,[e],[fn]])
toggle([s],[e],[fn])
// 滑动
slideDown([s],[e],[fn])
slideUp([s,[e],[fn]])
slideToggle([s],[e],[fn])
// 淡入淡出
fadeIn([s],[e],[fn])
fadeOut([s],[e],[fn])
fadeTo([[s],o,[e],[fn]])
fadeToggle([s,[e],[fn]])
// 自定义
animate(p,[s],[e],[fn])

示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>动画效果示例</title>
</head>
<body><img style="position: relative" id="i1" width="500" src="http://www.iyi8.com/uploadfile/2015/1024/20151024114500805.jpg" alt="我前女友">
<button id="b1">再见</button>
<button id="b2">再见x2</button>
<button id="b3">往左</button>
<button id="b4">往右</button><script src="jquery-3.2.1.min.js"></script>
<script>$("#b1").on("click", function () {$("#i1").toggle(3000);});$("#b2").on("click", function () {$("#i1").fadeToggle(3000);});$("#b3").on("click", function () {$("#i1").animate({"right": "+50px"}, 3000)});$("#b4").on("click", function () {$("#i1").animate({"right": "-50px"}, 3000)})
</script>
</body>
</html>

自定义点赞示例:

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>点赞动画示例</title><style>div {position: relative;display: inline-block;}div>i {display: inline-block;color: red;position: absolute;right: -16px;top: -5px;opacity: 1;}</style>
</head>
<body><div id="d1">点赞</div>
<script src="jquery-3.2.1.min.js"></script>
<script>$("#d1").on("click", function () {var newI = document.createElement("i");newI.innerText = "+1";$(this).append(newI);$(this).children("i").animate({opacity: 0}, 1000)})
</script>
</body>
</html>点赞特效简单示例

each

jQuery.each(collection, callback(indexInArray, valueOfElement)):

描述:一个通用的迭代函数,它可以用来无缝迭代对象和数组。数组和类似数组的对象通过一个长度属性(如一个函数的参数对象)来迭代数字索引,从0到length - 1。其他对象通过其属性名进行迭代。

li =[10,20,30,40]
$.each(li,function(i, v){
console.log(i, v);//index是索引,ele是每次循环的具体元素。
})

输出如下:

010
120
230
340

.each(function(index, Element)):

描述:遍历一个jQuery对象,为每个匹配元素执行一个函数。

.each() 方法用来迭代jQuery对象中的每一个DOM元素。每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。由于回调函数是在当前DOM元素为上下文的语境中触发的,所以关键字 this 总是指向这个元素。

// 为每一个li标签添加foo

$("li").each(function(){$(this).addClass("c1");
});

注意: jQuery的方法返回一个jQuery对象,遍历jQuery集合中的元素 - 被称为隐式迭代的过程。当这种情况发生时,它通常不需要显式地循环的 .each()方法:

也就是说,上面的例子没有必要使用each()方法,直接像下面这样写就可以了:

$("li").addClass("c1");  // 对所有标签做统一操作

在遍历过程中可以使用 return false提前结束each循环。
return是结束本次循环,进入下次循环

.data()

在匹配的元素集合中的所有元素上存储任意相关数据或返回匹配的元素集合中的第一个元素的给定名称的数据存储的值。

.data(key, value):

描述:在匹配的元素上存储任意相关数据。

$(“div”).data(“k”,100);//给所有div标签都保存一个名为k,值为100

.data(key):

描述: 返回匹配的元素集合中的第一个元素的给定名称的数据存储的值—通过 .data(name, value)或 HTML5 data-*属性设置。

$(“div”).data(“k”);//返回第一个div标签中保存的”k”的值

.removeData(key):

描述:移除存放在元素上的数据,不加key参数表示移除所有保存的数据。

$(“div”).removeData(“k”); //移除元素上存放k对应的数据

示例:

实现表格的增删改

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>作业讲解</title><style>.cover {position: fixed;top: 0;right: 0;bottom: 0;left: 0;background-color: rgba(0, 0, 0, 0.3);z-index: 999;}.modal {position: fixed;top: 50%;left: 50%;width: 400px;height: 300px;margin-top: -150px;margin-left: -200px;background-color: white;z-index: 1000;}.hide {display: none;}</style>
</head>
<body><button id="add-btn">新增</button>
<table border="1"><thead><tr><th>#</th><th>姓名</th><th>爱好</th><th>操作</th></tr></thead><tbody><tr><td>1</td><td>aa</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>2</td><td>bb</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>3</td><td>cc</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>4</td><td>dd</td><td>烧热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr><tr><td>5</td><td>ee</td><td>喝热水</td><td><button class="edit">编辑</button><button class="delete">删除</button></td></tr></tbody>
</table><div class="cover hide"></div>
<div class="modal hide"><p><label for="modal-name">姓名</label><input id="modal-name" type="text" name="name"></p><p><label for="modal-hobby">爱好</label><input id="modal-hobby" type="text" name="hobby"></p><p><button id="modal-submit">提交</button><button id="modal-cancel">取消</button></p>
</div>
<script src="jquery-3.2.1.min.js"></script>
<script>// 弹出模态框函数function showModal() {$(".cover, .modal").removeClass("hide");}// 关闭模态框function hideModal() {$(".cover, .modal").addClass("hide");// 清空模态框里面的input$(".modal input").val("");}// 绑定事件$(document).ready(function () {// 添加按钮绑定事件$("#add-btn").on("click", function () {showModal();});// 模态框里面的取消按钮,绑定关闭模态框事件$("#modal-cancel").on("click", function () {hideModal();});// 表格中删除按钮绑定事件$("tbody").on("click", ".delete", function () {// this 当前点击的删除按钮// $(this)  --> 变成jQuery对象var $currentTr = $(this).parent().parent();// 更新当前行后面的所有tr的序号(tr的第一个td儿子)$currentTr.nextAll().each(function () {var $firstTd = $(this).children().first();// this -->  当前循环中的那个trvar currentNum = parseInt($firstTd.text()) - 1;$firstTd.text(currentNum);});// 删除当前行$currentTr.remove();});// 点击模态框里面的提交按钮,把数据添加到表格中$("#modal-submit").on("click", function () {// 获取模态框里面input的值var name = $("#modal-name").val();var hobby = $("#modal-hobby").val();// 如果是编辑操作,我应该去更新原来的td的值var $tds = $("#modal-submit").data("tds");if ($tds !== undefined) {// 能够取到$tds,表示我是一个编辑的操作// 更新$tds$tds.eq(1).text(name);$tds.eq(2).text(hobby);} else {// 取不到tds,表示我是一个新增的操作// 因为是新增操作,所以要创建新的tr// 创建tr标签var trEle = document.createElement("tr");// 获取当前表格里面所有的tr标签的个数,正好就是我新增tr的序号var currentNum = $("table tr").length;$(trEle).append("<td>" + currentNum + "</td>");$(trEle).append("<td>" + name + "</td>");$(trEle).append("<td>" + hobby + "</td>");$(trEle).append("<td>" + '<button class="edit">编辑</button> <button class="delete">删除</button>' + "</td>");// 把生成的tr标签添加到tbody的最后$(trEle).appendTo("tbody");}// 清空一下$tds$("#modal-submit").removeData("tds");// 隐藏模态框hideModal();});// 编辑按钮$("tbody").on("click", ".edit", function () {// 显示模态框showModal();// 取出当前行的数据,填写到模态框里面的input中// 1.取当前行的数据// this 当前点击的那个编辑按钮// 找到当前行所有的tdvar $tds = $(this).parent().parent().children();$("#modal-submit").data("tds", $tds);var name = $tds.eq(1).text();var hobby = $tds.eq(2).text();console.log(name, hobby);// 将取到的数据填写到模态框里面的input$("#modal-name").val(name);$("#modal-hobby").val(hobby);})})</script>
</body>
</html>

这篇关于jquery-事件、动画效果、each、.data()、表格增删改的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1125172

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

防近视护眼台灯什么牌子好?五款防近视效果好的护眼台灯推荐

在家里,灯具是属于离不开的家具,每个大大小小的地方都需要的照亮,所以一盏好灯是必不可少的,每个发挥着作用。而护眼台灯就起了一个保护眼睛,预防近视的作用。可以保护我们在学习,阅读的时候提供一个合适的光线环境,保护我们的眼睛。防近视护眼台灯什么牌子好?那我们怎么选择一个优秀的护眼台灯也是很重要,才能起到最大的护眼效果。下面五款防近视效果好的护眼台灯推荐: 一:六个推荐防近视效果好的护眼台灯的

[MySQL表的增删改查-进阶]

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 💻💻💻数据库约束 🔭🔭🔭约束类型 not null: 指示某列不能存储 NULL 值unique: 保证某列的每行必须有唯一的值default: 规定没有给列赋值时的默认值.primary key:

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。