jQuery 学习笔记(三)——事件与应用

页面加载时触发ready()事件

ready()事件类似于onLoad()事件,但前者只要页面的DOM结构加载后便触发,而后者必须在页面全部元素加载成功才触发,ready()可以写多个,按顺序执行。此外,下列写法是相等的:

$(document).ready(function(){})等价于$(function(){});

例如,当触发页面的ready()事件时,在<div>元素中显示一句话。如下图所示:

在浏览器中显示的效果:

从图中可以看出,当页面的DOM框架完成加载后,便触发ready()事件,在该事件中,通过id号为“tip”的元素,调用html()方法在页面中显示一段字符。

使用bind()方法绑定元素的事件

bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名,绑定的事件名称,事件中执行的函数内容就可以,它的绑定格式如下:

$(selector).bind(event,[data] function)

参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。

例如,绑定按钮的单击事件,单击按钮时,该按钮变为不可用。如下图所示:

在浏览器中显示的效果:

可以看出,由于使用bind()方法,绑定了按钮的单击事件,在该事件中将按钮本身的“disabled”属性值设为“true”,表示不可用,当点击时触该事件。

使用bind()方法绑定元素的事件

bind()方法绑定元素的事件非常方便,绑定前,需要知道被绑定的元素名,绑定的事件名称,事件中执行的函数内容就可以,它的绑定格式如下:

$(selector).bind(event,[data] function)

参数event为事件名称,多个事件名称用空格隔开,function为事件执行的函数。

例如,绑定按钮的单击事件,单击按钮时,该按钮变为不可用。如下图所示:

在浏览器中显示的效果:

可以看出,由于使用bind()方法,绑定了按钮的单击事件,在该事件中将按钮本身的“disabled”属性值设为“true”,表示不可用,当点击时触该事件。

使用hover()方法切换事件

hover()方法的功能是当鼠标移到所选元素上时,执行方法中的第一个函数,鼠标移出时,执行方法中的第二个函数,实现事件的切实效果,调用格式如下:

$(selector).hover(over,out);

over参数为移到所选元素上触发的函数,out参数为移出元素时触发的函数。

例如,当鼠标移到<div>元素上时,元素中的字体变成金黄色,如下图所示:

在浏览器中显示的效果:

从图中可以看出,使用hover()方法执行两个函数,当鼠标移在元素上时调用addClass()方法增加一个样式,移出时,调用removeClass()方法移除该样式。

使用toggle()方法绑定多个函数

toggle()方法可以在元素的click事件中绑定两个或两个以上的函数,同时,它还可以实现元素的隐藏与显示的切换,绑定多个函数的调用格式如下:

$(selector).toggle(fun1(),fun2(),funN(),...)

其中,fun1,fun2就是多个函数的名称

例如,使用toggle()方法,当每次点击<div>元素时,显示不同内容,如下图所示:

在浏览器中显示的效果:

从图中可以看出,每次点击<div>元素时,都依次执行toggle()方法绑定的函数,当执行到最后一个函数时,再次点击将又返回执行第一个函数。

注意:toggle()方法支持目前主流稳定的jQuery版本1.8.2,在1.9.0之后的版本是不支持的。

使用unbind()方法移除元素绑定的事件

unbind()方法可以移除元素已绑定的事件,它的调用格式如下:

$(selector).unbind(event,fun)

其中参数event表示需要移除的事件名称,多个事件名用空格隔开,fun参数为事件执行时调用的函数名称。

例如,点击按钮时,使用unbind()方法移除<div>元素中已绑定的“dblclick”事件,如下图所示:

在浏览器中显示的效果:

从图中可以看出,当使用unbind()方法移除已绑定的“dblclick”事件时,再次双击<div>元素,样式和文字都没有任何变化,表明移除事件成功。

如果没有规定参数,unbind() 方法会删除指定元素的所有事件处理程序。

使用one()方法绑定元素的一次性事件

one()方法可以绑定元素任何有效的事件,但这种方法绑定的事件只会触发一次,它的调用格式如下:

$(selector).one(event,[data],fun)

参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。

例如,使用one方法绑定<div>元素的单击事件,在事件执行的函数中,累计执行的次数,并将该次数显示在页面中,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于使用了one()方法绑定<div>元素的单击事件,因为事件函数只能执行一次,执行完成后,无论如何单击,都不再触发。

调用trigger()方法手动触发指定的事件

trigger()方法可以直接手动触发元素指定的事件,这些事件可以是元素自带事件,也可以是自定义的事件,总之,该事件必须能执行,它的调用格式为:

$(selector).trigger(event)

其中event参数为需要手动触发的事件名称。

例如,当页面加载时,手动触发文本输入框的“select”事件,使文本框的默认值处于全部被选中的状态,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于文本输入框调用trigger()方法触发了“select”事件,因此,当页面加载完成后,文本框中的默认值处于全部被选中的状态。

文本框的focus和blur事件

focus事件在元素获取焦点时触发,如点击文本框时,触发该事件;而blur事件则在元素丢失焦点时触发,如点击除文本框的任何元素,都会触发该事件。

例如,在触发文本框的“focus”事件时,<div>元素显示提示内容,如下图所示:

在浏览器中显示的效果:

从图中可以看出,当点击文本框时,触发文本框的“focus”事件,在该事件中,页面中的<div>元素显示提示信息。

下拉列表框的change事件

当一个元素的值发生变化时,将会触发change事件,例如在选择下拉列表框中的选项时,就会触change事件。

例如,当在页面选择下拉列表框中的选项时,将在<div>元素中显示所选择的选项内容,如下图所示:

在浏览器中显示的效果:

从图中可以看出,由于使用bind()方法绑定了下拉列表的“change”事件,因此,当选择列表中的选项时,在<div>元素中显示所选择的选项内容。

调用live()方法绑定元素的事件

bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:

$(selector).live(event,[data],fun)

参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。

例如,使用live()方法绑定,页面中按钮元素的单击事件,而这个按钮是通过追加的方式添加至页面的。如下图所示:

在浏览器中显示的效果:

从图中可以看出,虽然按钮元素是在事件绑定声明之后,并且是通过追加的方式添加至页面的,但由于使用的是live()方法绑定元素的事件,因此,仍然生效。

注意:从 jQuery 1.7 开始,不再建议使用 .live() 方法。1.9不支持.live(),本节代码编辑器里的js引用版本改为了1.8。





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

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

相关文章

web开发软件,HTML如何添加锚点,成功入职阿里

前言 正式学习前端大概 3 年多了&#xff0c;接触前端大概 4 年了&#xff0c;很早就想整理这个书单了&#xff0c;因为常常会有朋友问&#xff0c;前端该如何学习&#xff0c;学习前端该看哪些书&#xff0c;我就讲讲我学习的道路中看的一些书&#xff0c;虽然整理的书不多&a…

cs硕士妹子找工作经历【阿里人搜等互联网】

摘自 北邮人论坛 分享他人成功的求职经历。原文如下&#xff1a; 唉&#xff0c;妹子本来是本着写面经的态度与大家分享&#xff0c;之自己情况也是想说明一啥都不会的菜鸟在悲催的逆境下也可以凭自身努力找到offer&#xff0c;没想到被评为作秀。。。妹子能力背景确实和说的…

web开发项目,web前端CSS全局样式,面试必问

前言 表格是网页制作中使用最多的工具之一&#xff0c;在制作网页时&#xff0c;使用表格可以更清晰地排列数据。但是在实际制作过程中&#xff0c;表格更多用在网页布局的定位上。很多网页都是以表格布局的。这是因为表格在文本和图像的位置控制方面都有很强的功能。 字节跳…

Java中key可以重复的Map集合:IdentityHashMap

范例&#xff1a;Map中的key不允许重复&#xff0c;重复就是覆盖 [java] view plaincopy package org.lxh.demo13.mapdemo; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Set; class Person { …

牛客网笔记之数组(一)

最近开始在“牛客网”上做题&#xff0c;希望通过日积月累&#xff0c;每天记录一点小知识&#xff0c;每天前进一小步。 今天练习的题目关于数组。 1. 数组存储&#xff1a;链式存储、顺序存储 线性表逻辑上是线性的&#xff0c;存储上可以是顺序的&#xff0c;可以是链式的…

社交网络节点理论

1.顿巴数 每个人的朋友圈子对多能达到150个人。&#xff08;密友3-5人&#xff0c;好友30-50人&#xff0c;其他100-150人&#xff09;纵使高科技带来的人际圈越来越大&#xff0c;但是人脑的容量是有限的&#xff0c;你也不可能和这么多人维持一定的人际关系&#xff08;没有人…

疯狂涨知识!Java多态实现原理技术总监都拍手叫好

##前言 多态是Java语言重要的特性之一&#xff0c;它允许基类的指针或引用指向派生类的对象&#xff0c;而在具体访问时实现方法的动态绑定。Java对于方法调用动态绑定的实现主要依赖于方法表&#xff0c;但通过引用调用&#xff08;invokevitual&#xff09;和接口引用调用&am…

国内互联网公司算法机器学习岗(阿里星)面试总结

从2015年8月到2015年10月&#xff0c;花了3个月时间找工作&#xff0c;先后通过内推参加了美团、阿里蚂蚁金服、京东、腾讯、今日头条、Growing IO、微软这7个公司的面试&#xff0c;同时参加了网易游戏、LinkedI In中国这2个公司的笔试&#xff0c;拿到比较优质的offer是京东S…

疯狂涨知识!「高并发秒杀」微信抢红包实战案例帮你突破瓶颈

推荐阅读&#xff1a; 阿里二面凉经&#xff1a;设计模式缓存Spring虚拟机MySQL中间件并发等难题&#xff0c;全部迎刃而解阿里巴巴字节跳动那些大厂必问的HTTP该怎么学&#xff1f;我建议你看看这篇文章&#xff01;蚂蚁、字节、PDD社招面经Java岗&#xff08;分布式线程安全…

2016面试——腾讯、蚂蚁金服、蘑菇街

腾讯TST技术面&#xff1a; 先罗列一下问题吧: 编程语言编译的过程 同样的逻辑,golang的二进制代码比C语言的二进制代码长很多.试分析原因 项目 ,三个项目都有聊.因为现场面,可以用纸写,所以描述的更清楚些 N * N的方格纸,里面有多少个正方形 两个数组求交集 什么样的…

Android开发;Activity-Hook你了解多少?一起来debug

享学课堂特邀作者&#xff1a;周周 转载请声明出处&#xff01; 前言 手把手讲解系列文章&#xff0c;是我写给各位看官&#xff0c;也是写给我自己的。文章可能过分详细&#xff0c;但是这是为了帮助到尽量多的人&#xff0c;毕竟工作5,6年&#xff0c;不能老吸血&#xff0c;…

牛客网笔记之JAVA运算符

计算机的最基本用途之一就是执行数学运算&#xff0c;作为一门计算机语言&#xff0c;Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组&#xff1a; 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 逻辑运算符结果 ~a是按位非&#…

Android架构师谈:View-Pager-性能优化之-无限循环

作者&#xff1a;享学课堂Alvin老师 转载请声明出处&#xff01; ViewPager实现无限滑动 **方案一&#xff1a;**将viewpager上限设置成一个很大的数&#xff0c;第一个页面设置到中间。然后滑动的时候&#xff0c;用当前的序号与viewpager页面数取余得到目标页面的序号&#…

你知道如何用面向对象思想写好并发编程吗?

在工作中&#xff0c;我发现很多人在设计之初都是直接按照单线程的思路来写程序的&#xff0c;而忽略了本应该重视的并发问题&#xff1b;等上线后的某天&#xff0c;突然发现诡异的 Bug&#xff0c;再历经千辛万苦终于定位到问题所在&#xff0c;却发现对于如何解决已经没有了…

你知道怎么在生产环境下部署tomcat吗?

享学课堂特邀作者&#xff1a;老顾 转载请声明出处&#xff01; 一、前言 小伙伴们在网上看到的很多文章&#xff0c;都是对tomcat的一些介绍&#xff0c;什么配置啊&#xff0c;怎么启动。其实在生产环境中怎么部署&#xff0c;和网上介绍的有很大区别。这篇文章老顾就带着大…

浅谈HashMap

Java集合类的整体架构 比较重要的集合类图如下&#xff1a; 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是&#xff08;用二叉树排序&#xff09; Map AbstractMap 否 使用 key-value 来映射和存储数据&#xff0c; Key 必须惟…

matlab实现一元线性回归和多元线性回归

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。 在实际经济问题中,一个变量往往受到多个变量的影响。例如,家…

互联网寒冬!“996”为什么还没实行?我还等着早点下班呢!

“喊了十多个月的‘996’&#xff0c;说要实行‘996’&#xff0c;上班上到现在&#xff0c;影子都没看到&#xff0c;我还能早点下班吗&#xff1f;” 我一个在广州上班的朋友小李&#xff0c;在我去广州出差期间&#xff0c;与他聊天的时候发出了这样的牢骚&#xff0c;我刚…

matlab求解常微分方程组/传染病模型并绘制SIR曲线

看了很多关于传染病模型的matlab程序,大都是绘制出两条曲线(I、S)的,本文最大的不同是绘出SIR三条曲线。 先给出SIR微分方程组 函数文件: run的程序:

互联网寒冬!技术站最全MySQL数据库实战规范

享学课堂特邀作者&#xff1a;老顾 转载请声明出处&#xff01; 前言 我们小伙伴们经常使用到mysql数据库&#xff0c;一般就这么一用&#xff0c;很少会考虑mysql里面的细节问题&#xff0c;如sql语句的规范&#xff0c;或索引有没有起到相应的效果&#xff0c;今天老顾就给大…