「融职培训」Web前端学习 第4章 jQuery 2 jQuery常用方法

事件的基本概念

上一章我们讲解了使用jQuery选择器获取元素,并通过一些方法来操作元素,本章我们讲解事件的概念,通过事件我们可以加强用户与浏览器的交互性,例如可以实现当用户点击某个元素的时候,对元素做一些操作,或是移动鼠标,对元素做一些操作。

事件的分类

事件主要可以分为以下几类:

  • 鼠标事件
  • 键盘事件
  • 文档事件
  • 表单事件
  • 触摸事件
  • 自定义事件

本章我们主要讲解鼠标事件。

我们先来将最常用的鼠标单击事件click,jQuery的基本语法如下所示:

我们先通过$(“selector”)选择器获取元素,然后通过click为元素定义事件,这样当我们用鼠标单击这个元素的时候,就会执行花括号中的代码。

输出文字

我们现在实现一个功能,当我们点击一个按钮的时候,在控制台输出\”hello world\”,代码如下所示。

切换图片

结合我们上一章的内容,来实现一个功能,当我们点击按钮的时候,将一张图片切换成另一张图片,代码如下所示。

在上面的代码中,$(this)对应的就是我们点击的这个元素,也就是img标签,当我们点击img标签的时候,使用attr方法将其src属性设置成另一张了图片的地址,这样就实现了图片的切换。

获取索引

接下来我们要实现一个更复杂的效果:点击一个数字列表来实现切换图片的功能,列表有三个数字,对应着三张不同的图片。

要实现这样的功能,很多同学会想到,给数字列表分别绑定事件,每一个事件都对应不同的图片就可以了,虽然这样可以实现我们要的功能,但是如果需求又增加了两张图片,那我们就又要多定义两个事件,所以这个方案是不合理的。

我们需要的是用一个选择器找到所有的数字列表,让后统一绑定一个事件,然后在点击数字列表的时候,让程序找到我们点击的是第几个,然后切换到对应的图片,就可以了。下面的代码可以让我们判断是第几个元素触发了事件,当点击时会输出对应的下角标。

  • 在上面的代码中,index方法可以获取元素的索引,索引就是当前元素在其同级的元素中排第几个,从0开始计数。
  • 我们将index获取到的索引值赋值给变量i,并输出i就看到了这个元素的索引。

切换图片

找到了列表的索引,我们下一步就要实现图片切换的功能了,首先我们需要了解数组的概念,数组是一个集合,我们将3章图片的路径放到了数组中,这样我们就可以通过数组的下标来获取到数组的元素了。

上面的代码可以了解到,我们可以通过数组的下标来获取数组中的元素。

接下来,我们结合之前学过的方法来实现一个图片切换的效果,代码如下所示。

这样,当我们点击数字列表的时候,就可以实现图片切换的功能了。

上一节我们说了鼠标单击事件,其实鼠标事件还有很多,这节我们讲解鼠标移入,移出和移动事件。

鼠标移入移出改变样式

鼠标的移入和一出事件分别是mouseenter和mouseleave。我们来实现一个功能,当我们的鼠标移入一个div的时候,让其变为红色,移出的时候,让其变为绿色,代码如下:

这里我们使用了链式操作,用一个选择器,绑定两个属性。

鼠标移入和移出事件可以简写成一个hover事件,上面的代码可以简写如下所示:

hover有方法有两个参数,都是函数,分别对应着mouseenter和mouseleave的事件,这样写的效果与上面完全相同。

鼠标移动获取坐标

鼠标在元素上移动的时候也会触发事件,下面我们来实现一个功能,当鼠标移动到一个div的时候,获取鼠标在网页页面上的坐标,代码如下所示:

  • 在上面的代码中e是事件对象,我们可以通过它获取到x轴和y轴的坐标。
  • 然后通过console.log()方法在控制台输出x坐标和y坐标。
  1. 滑动显示和隐藏的右边栏,点击按钮弹出,电气其他位置隐藏。
  2. 让图片跟随鼠标移动。
  3. 返回顶部

【融职教育】在工作中学习,在学习中工作

jQuery学习笔记

学习目标

  • 能够知道jQuery的作用及优点

jQuery是对JavaScript的封装,它是免费、开源的JavaScript函数库,jQuery 极大地简化了 JavaScript 编程。

jQuery和JavaScript它们的作用一样,都是负责网页行为操作,增加网页和用户的交互效果的,只不过jQuery简化了JavaScript编程,jQuery实现交互效果更简单。

  • jQuery兼容了现在主流的浏览器,增加了程序员的开发效率。
  • jQuery简化了 JavaScript 编程,代码编写更加简单。
  • jQuery是一个免费、开源的JavaScript函数库
  • jQuery的作用和JavaScript一样,都是负责网页和用户的交互效果。
  • jQuery的优点就是兼容主流浏览器,代码编写更加简单。

学习目标

  • 能够知道jQuery的引入方式
  • 能够说出两种jQuery入口函数的写法

我们知道使用js获取标签元素,需要页面加载完成以后再获取,我们通过给onload事件属性设置了一个函数来获取标签元素,而jquery提供了ready函数来解决这个问题,保证获取标签元素没有问题,它的速度比原生的 window.onload 更快

入口函数示例代码:

入口函数的简写示例代码:

  • 引入jQuery
  • 获取标签元素需要在入口函数来完成,它的速度比原生的 window.onload 更快
  • jQuery入口函数有两种写法:
  • // 完整写法 $(document).ready(function(){ … }); // 简化写法 $(function(){ … });

学习目标

  • 能够使用jQuery选择器获取标签元素

jquery选择器就是快速选择标签元素,获取标签的,选择规则和css样式一样。

  1. 标签选择器
  2. 类选择器
  3. id选择器
  4. 层级选择器
  5. 属性选择器

示例代码:

说明:可以使用length属性来判断标签是否选择成功, 如果length大于0表示选择成功,否则选择失败。

  • jQuery选择器就是选择标签的
  • 标签选择器是根据标签名来选择标签
  • 类选择器是根据类名来选择标签
  • id选择器是根据id来选择标签
  • 层级选择器是根据层级关系来选择标签
  • 属性选择器是根据属性名来选择标签

学习目标

  • 能够使用选择器进行标签过滤

选择集过滤就是在选择标签的集合里面过滤自己需要的标签

  • has(选择器名称)方法,表示选取包含指定选择器的标签
  • eq(索引)方法,表示选取指定索引的标签

has方法的示例代码:

eq方法的示例代码:

  • 选择集过滤可以使用has方法和eq方法来完成
  • jquery给标签设置样式使用css方法

学习目标

  • 能够说出2种选择集转移方法

选择集转移就是以选择的标签为参照,然后获取转移后的标签

  • $(\’#box\’).prev(); 表示选择id是box元素的上一个的同级元素
  • $(\’#box\’).prevAll(); 表示选择id是box元素的上面所有的同级元素
  • $(\’#box\’).next(); 表示选择id是box元素的下一个的同级元素
  • $(\’#box\’).nextAll(); 表示选择id是box元素的下面所有的同级元素
  • $(\’#box\’).parent(); 表示选择id是box元素的父元素
  • $(\’#box\’).children(); 表示选择id是box元素的所有子元素
  • $(\’#box\’).siblings(); 表示选择id是box元素的其它同级元素
  • $(\’#box\’).find(\’.myClass\’); 表示选择id是box元素的class等于myClass的元素

选择集转移的示例代码:

  • prev() 表示获取上一个同级元素
  • prevAll() 表示获取上面所有同级元素
  • next() 表示获取下一个同级元素
  • nextAll() 表示获取下面所有同级元素
  • parent() 表示获取父元素
  • children() 表示获取所有的子元素
  • siblings() 表示获取其它同级元素
  • find(\”选择器名称\”) 表示获取指定选择器的元素

学习目标

  • 能够知道获取和设置元素内容的操作

jquery中的html方法可以获取和设置标签的html内容

示例代码:

说明:

给指定标签追加html内容使用append方法

  • 获取和设置元素的内容使用: html方法
  • 给指定元素追加html内容使用: append方法

学习目标

  • 能够知道获取和设置元素属性的操作

之前使用css方法可以给标签设置样式属性,那么设置标签的其它属性可以使用prop方法了。

示例代码:

说明: 获取value属性和设置value属性还可以通过val方法来完成。

  • 获取和设置元素属性的操作可以通过prop方法来完成
  • 获取和设置元素的value属性可以通过val方法来完成,更加简单和方便

学习目标

  • 能够说出两个常用的jQuery事件
  • click() 鼠标单击
  • blur() 元素失去焦点
  • focus() 元素获得焦点
  • mouseover() 鼠标进入(进入子元素也触发)
  • mouseout() 鼠标离开(离开子元素也触发)
  • ready() DOM加载完成

示例代码:

说明:

  • this指的是当前发生事件的对象,但是它是一个原生js对象
  • $(this) 指的是当前发生事件的jquery对象

jQuery常用事件:

  • click() 鼠标单击
  • blur() 元素失去焦点
  • focus() 元素获得焦点
  • mouseover() 鼠标进入(进入子元素也触发)
  • mouseout() 鼠标离开(离开子元素也触发)
  • ready() DOM加载完成

学习目标

  • 能够知道事件代理的使用方式

事件代理就是利用事件冒泡的原理(事件冒泡就是事件会向它的父级一级一级传递),把事件加到父级上,通过判断事件来源,执行相应的子元素的操作,事件代理首先可以极大减少事件绑定次数,提高性能;其次可以让新加入的子元素也可以拥有相同的操作

事件冒泡代码:

说明:

当点击子元素div,它的点击事件会向它父元素传递,也会触发了父元素的点击事件,这就是事件冒泡。

一般绑定事件的写法:

事件代理的写法

delegate方法参数说明:

delegate(childSelector,event,function)

  • childSelector: 子元素的选择器
  • event: 事件名称,比如: \’click\’
  • function: 当事件触发执行的函数
  • 事件代理就是使用父元素来代理子元素的事件,好处是减少事件的绑定次数,提高性能。
  • 使用场景当多个相同的子元素绑定同一个事件,可以使用事件代理。
  • 事件代理使用是使用delegate方法来完成

学习目标

  • 能够知道JavaScript对象有两种创建方式

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数等都可以认为是对象,此外,JavaScript 允许自定义对象,对象可以拥有属性和方法。

创建自定义javascript对象有两种方式:

  • 通过顶级Object类型来实例化一个对象
  • 通过对象字面量创建一个对象

Object类创建对象的示例代码:

对象字面量创建对象的示例代码:

说明:

调用属性和方法的操作都是通过点语法的方式来完成,对象的创建推荐使用字面量方式,因为更加简单。

创建自定义javascript对象有两种方式:

  • Object
  • 字面量

学习目标

  • 能够知道json的格式

json是 JavaScript Object Notation 的首字母缩写,翻译过来就是javascript对象表示法,这里说的json就是类似于javascript对象的字符串,它同时是一种数据格式,目前这种数据格式比较流行,逐渐替换掉了传统的xml数据格式。

json有两种格式:

  1. 对象格式
  2. 数组格式

对象格式:

对象格式的json数据,使用一对大括号({}),大括号里面放入key:value形式的键值对,多个键值对使用逗号分隔。

对象格式的json数据:

格式说明:

json中的(key)属性名称和字符串值需要用双引号引起来,用单引号或者不用引号会导致读取数据错误。

数组格式:

数组格式的json数据,使用一对中括号([]),中括号里面的数据使用逗号分隔。

数组格式的json数据:

实际开发的json格式比较复杂,例如:

json本质上是字符串,如果在js中操作json数据,可以将json字符串转化为JavaScript对象。

示例代码:

  • json就是一个javascript对象表示法,json本质上是一个字符串。
  • json有两种格式:1. 对象格式, 2. 数组格式

学习目标

  • 能够知道ajax的作用

ajax 是 Asynchronous JavaScript and XML的简写,ajax一个前后台配合的技术,它可以让 javascript 发送异步的 http 请求,与后台通信进行数据的获取,ajax 最大的优点是实现局部刷新,ajax可以发送http请求,当获取到后台数据的时候更新页面显示数据实现局部刷新,在这里大家只需要记住,当前端页面想和后台服务器进行数据交互就可以使用ajax了。

这里提示一下大家, 在html页面使用ajax需要在web服务器环境下运行, 一般向自己的web服务器发送ajax请求。

jquery将它封装成了一个方法$.ajax(),我们可以直接用这个方法来执行ajax请求。

示例代码:

ajax方法的参数说明:

  1. url 请求地址
  2. type 请求方式,默认是\’GET\’,常用的还有\’POST\’
  3. dataType 设置返回的数据格式,常用的是\’json\’格式
  4. data 设置发送给服务器的数据,没有参数不需要设置
  5. success 设置请求成功后的回调函数
  6. error 设置请求失败后的回调函数
  7. async 设置是否异步,默认值是\’true\’,表示异步,一般不用写
  8. 同步和异步说明同步是一个ajax请求完成另外一个才可以请求,需要等待上一个ajax请求完成,好比线程同步。异步是多个ajax同时请求,不需要等待其它ajax请求完成, 好比线程异步。

ajax的简写方式:

$.ajax按照请求方式可以简写成$.get或者$.post方式

ajax简写方式的示例代码:

$.get和$.post方法的参数说明:

$.get(url,data,success(data, status, xhr),dataType).error(func)$.post(url,data,success(data, status, xhr),dataType).error(func)

  1. url 请求地址
  2. data 设置发送给服务器的数据,没有参数不需要设置
  3. success 设置请求成功后的回调函数data 请求的结果数据status 请求的状态信息, 比如: \”success\”xhr 底层发送http请求XMLHttpRequest对象
  4. dataType 设置返回的数据格式\”xml\”\”html\”\”text\”\”json\”
  5. error 表示错误异常处理func 错误异常回调函数
  • ajax 是发送http请求获取后台服务器数据的技术
  • ajax的简写方式可以使用$.get和$.post方法来完成

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。