`

jquery中的事件

 
阅读更多

jquery增加并扩展了基本的事件处理机制,并且提供了更加优雅的事件处理语法,极大地增强了事件处理能力,让你不必考虑不同浏览器事件的不同实现机制,更好地支持多浏览器。

1、入门:加载DOM

很多时候,在页面的dom加载完后就可以做相应的操作。而传统的window.onload事件往往要在页面的资源全部加载完之后(包括窗口,框架,图像等)才触发该事件,
而jquery的$(document).ready(function)事件可以在dom加载之后就被触发,而不必等待到所有资源加载完毕。所有能带来更好的用户体验。
若需要在页面中所有资源下载完成后触发事件,强大的jquery还提供load方法,只要将该方法绑定到相应的对象上就可以了,比如在window对象上绑定。
$(document).ready(function)事件的优点:
a、只要DOM加载完毕就会被触发,极大地提升了用户体验(尤其是对应那些网速较慢的浏览者而言,这点就显得特别重要)
b、可以重复绑定多个事件处理函数,不像window.onload事件,绑定多个事件处理函数,只有最后一个才会生效。
c、提供简写
下面就对$(document).ready(function)事件的三种声明方法进行说明:

语法 1

语法 2


语法 3

2、jquery事件绑定


使用jquery绑定事件一般使用bind方法,bind方法的声明如下:
bind(eventType,[data],fn)
其中第一个参数eventType用于指定待绑定的事件,比如常见的有:click,focus,blur等,可一次性指定多个事件,多个事件之间使用英文逗号分隔;
第二个参数是可选参数,一般很少使用,当声明该参数的时候,将允许我们传递额外的参数给事件处理函数。
第三个参数是事件处理函数。
下面是一个简单的例子:

对一些常见的事件,jquery特别为此提供了一套简写的方法。简写方法和bind方法相类似,实现的效果也一样,只是为了编写方便而已,比如常见的click(fn)、mouseover(fn),mouseout(fn)函数

3、合成事件


jquery中有两个合成事件,即hover()和toggle()方法,下面分别对hover()和toggle()方法进行介绍
hover方法用于模拟光标悬停事件,当光标移动到元素上时,会触发指定的1个函数enter;当光标移出这个元素时,会触发第2个函数leave.
hover方法的语法结构如下:
使用举例如下:

toggle方法用于模拟鼠标连续单击事件,第1次单击元素,触发指定的第1个函数fn1,再次点击同一元素,触发第2个函数fn2;若有更多函数,则依次触发,直到最后一个。随后的每次点击都重复对这几个函数的轮番调用。
使用示例:

4、事件冒泡

关于事件冒泡的原理介绍,可以参考我转载的一篇blog:http://blog.csdn.net/yhawaii/article/details/6938514
下面是一个冒泡的例子:

使用jquery阻止冒泡方法:event,stopPropagation();

看完了事件冒泡,下面我们就对阻止默认事件进行介绍,在浏览器中有很多默认事件,比如说默认点击右键的时候显示的是浏览器的菜单,但是假如我需要使用自己定义的鼠标右键的菜单,而不使用默认的事件,应该怎么办呢。这个时候你就需要阻止默认事件了。
在jquery中阻止默认事件方法是:event.preventDefault();


jquery不不支持事件捕获,若需要的话,只能使用原生的javascript了

5、事件对象的常见属性

  • type属性,用于获取事件的类型,比如说获取点击事件是clickevent.type();
  • event.pageX,event.pageY属性

event.pageX/event.pageY相当于ie中的event.x/event.x,firefox中的event.pageX/event.pageY.jquery对event.pageX/event.pageY进行了封装,使其支持多浏览器

  • event.target属性,获取触发事件的DOM元素(注意不是jquery元素)
  • event.which属性,用于获取在鼠标单击事件中,按下的是哪个键,1 = 鼠标左键, 2 =鼠标中间, 3 = 鼠标右键
  • event.originalEvent属性,指向原始的DOM事件对象
  • event.preventDefault()方法,阻止默认事件
  • event.stopPropagation()方法,阻止冒泡
  • event.relatedTarget属性

    在标准的DOM中,mouseover和mouseout所发生的元素可以通过event.target来访问,相关元素是通过event.relatedTarget属性来访问的。event.relatedTarget方法在mouseover中相当于ie浏览器中的event.fromElement()方法,在mouseout中相当于ie浏览器的event.toElement方法,jquery对其进行了封装,使之兼容多种浏览器。

    下面是一个例子:



6、移除事件

既然已经学习了如何绑定事件,那么下面对学习一下如何移除已绑定的事件吧!
jquery中移除事件的两个方法unbind()方法和one方法
unbind()方法,从每一个匹配的元素中删除绑定的事件,其定义如下:


7、模拟事件

trigger方法使用示例:



分享到:
评论

相关推荐

    node-v9.9.0-win-x86.zip

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v6.13.0-sunos-x64.tar.gz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    毕业设计Python基于LSTM的多步向前手术风险预测项目源代码+数据+论文

    毕业设计Python基于LSTM的多步向前手术风险预测项目源代码+数据+论文

    node-v9.2.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    258ssm-mysql-jsp 陆丰市医院分诊管理系统.zip(可运行源码+数据库文件+文档)

    医院分诊管理管理系统是典型的信息管理系统,其主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起一致性、完整性强和安全性好的数据库。而对于后者则要求应用程序具有功能完备,易使用等特点。经过分析如此情况,决定使用Java语言进行开发,利用其提供的各种面向对象的开发工具,数据库方面使用当前比较流行的mysql。 本系统主要包括以下功能:系统设置功能、患者管理模块、分诊管理功能、诊断管理功能。1) 系统设置模块 系统设置包括权限管理和用户信息。此模块主要功能包括: ·添加、修改、删除和查看用户信息; ·给用户分配权限; 2) 患者管理功能 此模块的主要功能包括: ·包括添加、修改、删除和查看患者信息; 3) 科室管理模块 此模块主要功能包括: ·包括添加、修改、删除和查看信息; 4) 分诊管理模块 本模块用于对分诊信息进行统计和查询,主要包括: ·分诊排队; ·分诊叫号; 关键字 面向对象;数据库;java;医院分诊管理系统;mysql。

    心电图机监控软件 vc++ 心电图机数据采集 曲线显示诊断病历源码.zip

    心电图机监控软件 vc++ ,心电图机数据采集 , 曲线显示, 诊断 , 病历

    node-v9.10.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    儿童编程启蒙之Scratch编程详解

    Scratch是一款专为儿童设计的图形化编程语言,通过直观易懂的界面和丰富的功能模块,帮助孩子们理解编程的基本概念,激发创新思维,培养解决问题的能力。本文将全面介绍Scratch的特点、应用及教育意义,为广大家长和教育工作者提供有益的参考。 Scratch作为一款专为儿童设计的图形化编程语言,以其直观易懂的界面和丰富的功能模块,为儿童编程启蒙教育提供了有力的支持。它不仅能够帮助孩子们掌握基本的编程技能,还能够培养他们的逻辑思维能力、创新精神和团队合作能力。因此,广大家长和教育工作者应该充分利用Scratch这一工具,为孩子们创造一个充满乐趣和挑战的编程学习环境,让他们在快乐中成长,为未来的学习和发展打下坚实的基础。

    node-v9.11.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    波士顿.py

    波士顿.py

    Fortran学习规划与基本案例.pdf

    这份文档是一份详细的Fortran语言学习规划及基本案例说明,对于希望学习和掌握Fortran编程语言的用户来说,是一份极为宝贵的参考资料。 首先,文档明确了学习Fortran的背景与目标,有助于学习者明确自己的学习方向和目的,从而更有针对性地进行学习。同时,文档还详细规划了学习内容和时间安排,从基础知识学习到项目实践与综合应用,每个阶段的学习任务都清晰明了,为学习者提供了一个系统的学习框架。 其次,文档还介绍了Fortran语言的基本用法和案例,包括变量声明与赋值、数组、程序结构与流程控制等方面的知识,并通过实例练习来帮助学习者加深对知识点的理解和应用。这些案例不仅具有代表性,而且具有很强的实用性,可以帮助学习者更好地掌握Fortran编程技能。 此外,文档还提供了学习方法与资源的建议,为学习者提供了多样化的学习途径和参考资料。无论是官方文档、教材与参考书目,还是在线学习平台和科研团队的经验分享,都为学习者提供了丰富的学习资源,有助于学习者更全面地了解Fortran语言的特点和应用。

    answer.sql

    answer.sql

    Sora AI Video Preview Case Sora AI 视频模版项目,React全栈快速部署.zip

    Sora AI Video Preview Case Sora AI 视频模版项目,React全栈快速部署.zip

    最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar

    最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar最新试用版发货100虚拟商品自动发货系统 源码免费下载.rar

    ### Linux:信息、使用技巧和优缺点

    linux

    node-v8.16.0-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v12.22.9-linux-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    源代码-access 管理 系统 API 文件.zip

    源代码-access 管理 系统 API 文件.zip

    基于Qt的频谱分析器,修改于Spek,支持Windows和Linux平台.zip

    基于Qt的频谱分析器,修改于Spek,支持Windows和Linux平台

Global site tag (gtag.js) - Google Analytics