前端(十二)jquery(2)

jquery(2)

文章目录

  • jquery(2)
  • 一、事件
  • 二、动画效果
  • 三、each函数和data函数
    • 3.1each函数
    • 3.2data函数

一、事件

所谓事件就是用户与浏览器交互时触发的功能,例如鼠标点击、鼠标悬停等等。
我们知道html的结构是html–>body–>div(d1)–>div(d2)–>button,当我们点击button标签时实际上也是在点击div(d2)和div(d1)标签,因此html中子事件被触发时,父事件也会跟着触发。

下面我们来总结一下js中的事件触发原理:当事件触发时首先会进入事件捕获阶段,js从html标签开始逐级向内寻找触发事件的标签,例如上面提到的结构会按html–>body–>div(d1)–>div(d2)–>button的顺序找到button标签;然后进入事件触发阶段,找到触发事件的标签后js按事件逻辑执行完代码;最后进入事件冒泡阶段,button的事件触发完以后会按button–>div(d2)–>div(d1)–>body–>html的顺序寻找父标签中是否绑定事件,如果父标签绑定了事件则会随着子标签事件的触发一并被触发。
而在jquery中事件的触发只有事件触发和事件冒泡两个阶段。

另外如果不希望父标签的事件被子标签事件冒泡影响,有以下的方式可以阻止:

//方式一:事件绑定函数return false(既阻止事件冒泡,也阻止默认事件)
$('.d2').click(function (){console.log(22222222222);return false})//方式二:通过事件对象阻止事件冒泡
$('.d2').click(function (event){//查看触发事件的类型console.log(event.type);//查看触发事件的标签console.log(event.target)//查看点击点坐标console.log(event.pageX)console.log(event.pageY)//阻止默认事件触发event.preventDefault()//阻止事件冒泡event.stopPropagation()
})//方式三:使用不支持冒泡的事件,如mouseenter(鼠标移至)、mouseleave(鼠标移开)

在jquery中的常见事件类型如下:
click():表示鼠标单击触发
dblclick():表示鼠标双击触发
mouseover():表示鼠标移至元素触发
mouseout():表示鼠标移开元素触发
focus():表示聚焦时触发(如鼠标点击文本输入框后的状态)
blur():表示失焦时触发
keydown():表示键盘按下时触发
keyup():表示键盘弹起时触发
change():表示输入框、选项、文件等内容改变时触发
select():表示输入框内容被选中时触发
submit():提交时触发(form表单绑定的默认事件,submit绑定的是click事件)

使用方式:

//绑定单个事件
$('div').click(function(){...})//绑定多个事件
$('div').bind({'mouseup': function () {...},'mousedown': function () {...}});

移除事件绑定的方式:

//如果unbind不传入参数表示移除所有事件
setTimeout(function () {$('div').unbind('mouseover');}, 3000);

如果页面中存在新增加的标签,我们希望给这些标签绑定事件可以使用事件委托的方式:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><script src="https://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script>
</head>
<body>
<ul><li><button>1</button></li>
</ul>
<button class="btn">添加</button>
<script>var count=1$('.btn').click(function (){count++;$(`<li><button>${count}</button></li>`).appendTo($('ul'))})//事件委托:添加事件委托以后父标签会给每个指定子标签绑定事件//事件委托算父标签的事件,on传入的参数分别是事件类型、子标签、事件逻辑$('ul').on('click','li',function(){console.log($(this).text())})
</script>
</body>
</html>

二、动画效果

元素的显示与隐藏是使用display:none控制的。

show(speed,callback):显示隐藏的元素。speed为动画时长,可传入’slow’,‘normal’,‘fast’,也可传入数值,单位ms;callback为动画结束的回调函数。
hide(speed,callback):隐藏显示的元素。
toggle(speed,callback):如果元素显示则隐藏,如果元素隐藏则显示。
slideDown(speed,callback):通过高度递增来显示元素。
slideUp(speed,callback):通过高度递减来隐藏元素。
slideToggle(speed,callback):如果元素显示则通过高度低减隐藏,如果元素隐藏则通过高度递增显示。
fadeIn(speed,callback):通过透明度递增的方式显示元素。
fadeOut(speed,callback):通过透明度递减的方式隐藏元素。
fadeToggle(speed,callback):…
fadeTo(speed,degree,callback):将元素透明度改变为degree值(0~1)
animate(params,[speed],[fn]):自定义动画效果,params为动画属性,speed为动画时长,fn为回调函数。例如:$(‘.box’).animate({‘left’: ‘300px’}, 2000).animate({‘top’: ‘300px’}, 2000)
stop([clearQueue],[jumpToEnd]):clearQueue如果设置成true,则清空动画等待队列。jumpToEnd为true则会立即结束所有动画效果。
delay(t):延时操作,停t秒后进行后面的操作

使用方式:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><script src="https://libs.baidu.com/jquery/2.0.3/jquery.min.js"></script><style>.d{width: 200px;height: 200px;background-color: #007bff}</style>
</head>
<body>
<div class="d"></div>
<button class="btn"></button>
<script>$('.btn').click(function (){$('.d').slideToggle(3000,function (){alert(11111111)})})
</script>
</body>
</html>

三、each函数和data函数

3.1each函数

jQuery.each(collection, callback(indexInArray, valueOfElement)):collection为对象,indexInArray为索引, valueOfElement为具体的值。该函数用来遍历对象的值。
另外each中return false会提前结束遍历。

l=[1,2,3,4]
$.each(l,function(i,v){console.log(i,v)})
//该函数还可以操作返回数组中的每个值
//不过大部分的jquery函数都具备隐式遍历的功能,可以自动完成返回数组中所有值的操作
$('li').each(function(i,v){$(this).addClass("l1");})
//$('li').addClass("l1")

3.2data函数

data函数可以将数据与html标签关联起来。

//关联数据
$('div').data('username','1234');
//获取数据
$('div').data('username')
//解除关联
$("div").removeData("username");

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW瞬变电磁接收系统

利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程&#xff0c;解决了传统仪器在信噪比低和抗干扰能力差的问题&#xff0c;实现了高精度的数据采集和处理&#xff0c;特别适用于地质勘探等领域。 ​ 项目背景&#xff1a; 瞬变电磁法是探…

【读书与思考】历史是一个好东西

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 导言 以后《AI日记》专栏我想专注于 AI 相关的学习、成长和工作等。而与 AI 无关的一些读书、思考和闲聊&#xff0c;我打算写到这里&#xff0c;我会尽量控制自己少想和少写。 下图的一些感想…

网络层协议之IP数据包层分片随笔

1.全篇内容均在图中&#xff0c;如何分片以及分片举例细节拆解&#xff0c;见下图: 1.1分片公式&#xff1a; 上述公式中有关/8 再*8目的是为了使用8字节对齐&#xff0c;从而使的分片数据包均为8字节整数倍&#xff01; 1.2.ip层数据包分片计算&图解

Python爬虫基础——认识网页结构(各种标签的使用)

1、添加<div>标签的代码定义了两个区块的宽度和高度均为100px&#xff0c;边框的格式也相同&#xff0c;只是区块中显示的内容不同&#xff1b; 2、添加<ul>和<ol>标签分别用于定义无序列表和有序列表。<il>标签位于<ul>标签或<ol>标签之…

牛客网刷题 ——C语言初阶(6指针)——字符逆序

1. 题目描述&#xff1a;字符逆序 牛客网题目链接 将一个字符串str的内容颠倒过来&#xff0c;并输出。 输入描述: 输入一个字符串&#xff0c;可以有空格 输出描述: 输出逆序的字符串 示例1 输入 I am a student 输出 tneduts a ma I 2. 思路 首先字符串逆序&#xff0c;之…

安徽省乡镇界面图层+arcgis数据shp格式-乡镇名称和编码2020年+wgs84坐标内容测评

最新安徽省乡镇界面图层arcgis数据shp格式-乡镇名称和编码2020年wgs84坐标无偏移

Telephony Netd

1、Linux补充知识 iptables iptables是Linux防火墙系统的重要组成部分,iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用iptables进行控制。 Netlink Netlink套接字是用以实现用户进程与内…

HashMap总结使用+原理+面试

文章目录 1.Hashmap的基本使用创建hashmap对象。遍历hashmap统计字母出现的次数用来投票计算返回JSON数据 2.hashmap源码阅读put源码阅读 3. HashMap 面试题目hashmap实现的原理什么时候数组需要进行扩容hashmap怎么确定把数据放到那个节点的哪个位置。为什么用 n - 1 与运算&a…

SpringMVC(四)响应

目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…

Mac软件介绍之录屏软件Filmage Screen

软件介绍 Filmage Screen 是一款专业的视频录制和编辑软件&#xff0c;适用于 Mac 系统 可以选择4k 60fps&#xff0c;可以选择录制电脑屏幕&#xff0c;摄像头录制&#xff0c;可以选择区域录制。同时也支持&#xff0c;简单的视频剪辑。 可以同时录制电脑麦克风声音 标准…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑&#xff5c;OKG Research 转眼间&#xff0c;2024年已经进入尾声&#xff0c;Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年&#xff0c;OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”&#xff0c;尝试把一整年的研究内容浓缩成精华。我们一共…

.NET 9.0 WebApi 发布到 IIS 详细步骤

微软表示&#xff0c;.NET 9 是迄今为止性能最高的 .NET 版本&#xff0c;对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进&#xff0c;并采用了更高效的算法来生成更好的代码。 .NET 9 是 .NET 8 的继任者&#xff0c;特别侧重于云原生应用和性能。 作为标准期…

【通识安全】煤气中毒急救的处置

1.煤气中毒的主要症状与体征一氧化碳中毒&#xff0c;其中毒症状一般分为轻、中、重三种。 (1)轻度&#xff1a;仅有头晕、头痛、眼花、心慌、胸闷、恶心等症状。如迅速打开门窗&#xff0c;或将病人移出中毒环境&#xff0c;使之吸入新鲜空气和休息&#xff0c;给些热饮料&am…

ECCV`24 | 首次解决文本到3D NeRFs分解问题!港中文等提出DreamDissector

论文链接&#xff1a;https://arxiv.org/abs/2407.16260 亮点直击 据作者所知&#xff0c;作者是第一个解决文本到3D NeRFs分解问题的团队。 为了解决这个问题&#xff0c;本文引入了一个名为DreamDissector的新颖框架&#xff0c;包括一种新颖的神经类别场&#xff08;NeCF&a…

nginx-灰度发布策略(split_clients)

一. 简述&#xff1a; 基于客户端的灰度发布&#xff08;也称为蓝绿部署或金丝雀发布&#xff09;是一种逐步将新版本的服务或应用暴露给部分用户&#xff0c;以确保在出现问题时可以快速回滚并最小化影响的技术。对于 Nginx&#xff0c;可以通过配置和使用不同的模块来实现基于…

PCL点云库入门——PCL库点云特征之PFH点特征直方图(Point Feature Histograms -PHF)

1、算法原理 PFH点&#xff08;Point Feature Histogram&#xff09;特征直方图的原理涉及利用参数化查询点与邻域点之间的空间差异&#xff0c;并构建一个多维直方图以捕捉点的k邻域几何属性。这个高维超空间为特征表示提供了一个可度量的信息空间&#xff0c;对于点云对应曲面…

qml PathView详解

1、概述 PathView 是 Qt Quick 中一个非常强大的视图组件&#xff0c;它基于一个 Path 来展示视图项&#xff08;如 Item、Rectangle 等&#xff09;。PathView 可以让你按照定义的路径动态地显示多个元素&#xff0c;并且支持动画、滑动等功能。这个视图控件的最大特点是能够…

网络协议安全的攻击手法

1.使用SYN Flood泛洪攻击&#xff1a; SYN Flood(半开放攻击)是最经典的ddos攻击之一&#xff0c;他利用了TCP协议的三次握手机制&#xff0c;攻击者通常利用工具或控制僵尸主机向服务器发送海量的变源端口的TCP SYN报文&#xff0c;服务器响应了这些报文后就会生成大量的半连…

前端学习DAY31(子元素溢出父元素)

.box1{width: 200px;height: 200px;background-color: chocolate;} 子元素是在父元素的内容区中排列的&#xff0c;如果子元素的大小超过了父元素&#xff0c;则子元素会从 父元素中溢出&#xff0c;使用overflow属性设置父元素如何处理溢出的子元素 可选值&#xff1a;visible…

机器人手眼标定

机器人手眼标定 一、机器人手眼标定1. 眼在手上标定基本原理2. 眼在手外标定基本原理 二、眼在手外标定实验三、标定精度分析 一、机器人手眼标定 要实现由图像目标点到实际物体上抓取点之间的坐标转换&#xff0c;就必须拥有准确的相机内外参信息。其中内参是相机内部的基本参…