位置: 编程技术 - 正文

jQuery事件处理的特征(事件命名机制)(jquery事件处理有哪些)

编辑:rootadmin

推荐整理分享jQuery事件处理的特征(事件命名机制)(jquery事件处理有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery事件处理程序返回false,jquerychange事件,jquery中的事件和事件处理有哪些,jquery的事件处理函数,jquery事件的响应,jquery的事件处理函数,jquery的事件处理函数,jquery中有哪些基础事件方法?,内容如对您有帮助,希望把文章链接给更多的朋友!

JQuery中的bind()和unbind(),提供了事件的绑定和取消机制,既可以绑定html默认支持的事件,也能够绑定自定义的事件。JQuery支持自定义事件,这显然给编程带来了极大的灵活性。下面就一起学习下,jquery事件处理的一些特性。

1、JQuery中事件可以重复绑定,不会覆盖。

当点击button1的时候,这2个事件处理函数都会触发。也许你会说,上面绑定的是不同的匿名函数,占用不同的内存空间。的确是这样的,不过就算是同一个处理函数,依然存在重复绑定问题。当button1被点击的时候,下面的事件处理函数同样会被调用2次。

绝大部分场景下,事件处理函数都只需要绑定一次,所以一定要注意JQuery事件的重复绑定这个特性,事件多次执行,就算没有bug,终究也不是好的做法。

2、使用bind一次绑定多个事件和处理函数。

如果多个事件需要注册相同的处理函数,那么可以使用如下代码进行简化(事件名称使用空格分隔):

如果每个事件的处理函数不同,那么可以使用如下的方式(json对象):

3、传递event对象和自定义参数。

一般来说,使用jquery的时候我们很少需要event对象,也不需要向事件处理函数传递自定义的参数。不过如果我们真的需要这么做,JQuery也是支持的。

eventObject很像IE和FF中的event对象,通过它能够获取事件发生时更详细的信息。如果我们指定了自定义的参数,那么JQuery会将它放在事件对象的data属性中,即通过eventObject.data就能够拿到我们传递的参数值。

4、事件取消的三种形式。

unbind用来取消之前通过bind绑定的事件处理函数,总的来说有三种形式:取消所有事件、取消某种类型的事件、取消某种类型下的某个事件处理函数。

假如我们给button1绑定了click、mouseup、mousedown事件,其中click事件绑定2个处理函数。

$("#button1").unbind():取消button1上所有已经绑定的事件处理函数。

jQuery事件处理的特征(事件命名机制)(jquery事件处理有哪些)

$("#button1").unbind("click"):只取消button1上绑定的click类型的事件处理函数。

这2种形式很好理解,也是我们平时编程最常用的做法。上面的代码我们注册了2个click类型的事件处理函数,如果要取消第2个click事件处理函数,第1个保留,应该怎么办呢?由于我们注册的是匿名函数,所以没有办法实现。下面的代码是错误的,达不到预期的效果。

虽然bind和unbind是用的匿名函数功能是相同的,但是这2个函数不是同一个javascript对象,因为它们占用不同的内存空间。聪明的你可能已经想到:如果bind和unbind使用不同函数,是不是就能达到目的了?确实是这样,下面的代码是正确的。

这就是unbind的第三种使用形式,可以看到这种做法非常的不好,因为这种做法不允许使用匿名函数,我们不得不暴露全局的函数(至少要求unbind的时候能够看得见)。JQuery提供了事件命名空间机制,个人感觉就是为了解决这个问题。

5、事件命名空间。

上面已经提到,事件命名空间就是为了解决unbind第三种形式遇到的问题。下面是JQuery官方API文档的解释:

Instead of maintaining references to handlers in order to unbind them, we can namespace the events and use this capability to narrow the scope of our unbinding actions.

所谓事件命名空间,其实就是在事件类型后面以点语法附加一个别名,以便引用事件,如”click.a”,其中”a”就是click当前事件类型的别名,即事件命名空间。由于点号是用来定义命名空间的,所以如果我们使用了自定义事件,那么事件名称一定不要包含点号,否则会引起意想不到的问题。这种问题,没有尝试的必要,特殊字符能不用则不用,否则是给自己找麻烦。

可以看到:使用命名空间,能够以一种更优雅的方式取消某种事件类型下的某个事件处理函数。这里值得一提:使用了命名空间与unbind并不冲突,上面三种形式的unbind依然可以正常使用。$("#button1").unbind()依然可以取消button1上的所有事件,$("#button1").unbind("click")依然可以取消所有的click事件。这种兼容性设计是非常棒的。

使用命名空间还要1个好处:能够按照命名空间来取消事件。

这段代码我们使用2个命名空间a和b,如果我只想要保留第2个click事件处理函数,其余的全部删除。我们可以有2种方式达到目的:

方式1:

方式2:

很显然方式2更加简单,更加技巧性,虽然代码更不容易看懂,不过只要你熟悉JQuery就能看懂。项目中如果出现了你看不懂的代码,只有2种情况:要么别人不行,代码写的烂;要么自己不行,知识懂的少。如果不熟悉某种语言,又怎能用它写好代码呢?所以,代码质量、开发效率,和个人技能水平,团队水平紧密相关。

以上所述是小编给大家介绍的jQuery事件处理的特征(事件命名机制),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

EasyUI创建对话框的两种方式 对话框(Dialog)是一个特殊的窗口(window),可以包含在顶部的工具栏和在底部的按钮。默认情况下,对话框(Dialog)不能改变大小,但是用户可以设

jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐) 效果图第一步:加载scriptsrc="js/jquery.min.js"/scriptscriptsrc="js/jquery.mobile-1.3.2.min.js"/script第二步:htmldivclass="item-wrap"divclass="itemclearfix"divclass="img-item"imgsrc="imag

Jquery组件easyUi实现表单验证示例 本文实例为大家分享了JqueryeasyUi表单验证实现代码,供大家参考,具体内容如下!DOCTYPEhtmlhtmlheadmetacharset="UTF-8"titleBasicForm-jQueryEasyUIDemo/titlelinkrel="stylesheet

标签: jquery事件处理有哪些

本文链接地址:https://www.jiuchutong.com/biancheng/383103.html 转载请保留说明!

上一篇:深入浅出 jQuery中的事件机制(深入浅出nginx实战)

下一篇:EasyUI创建对话框的两种方式(easyui怎么用)

  • 工程奖励金算收入吗
  • 企业信用公示的时效是多久
  • 新增土地和新增货值
  • 税收的性质是哪一项
  • 企业促销应该采用什么方法
  • 大额虚开发票做转出税款入什么会计科目?
  • 小企业固定资产折旧方法
  • 货样广告品管理办法
  • 公司购买的绿植普票怎么抵扣
  • 小规模纳税人如何纳税
  • 土地增值税计算题及答案解析
  • 企业2015年申报抵扣的增值税,2016年检查有11000元不得抵扣,需要补交增值税11000元并收滞纳金及罚款1200元,请问老师具体该怎么做账,谢谢
  • 长期待摊费用无发票怎么处理
  • 进项留抵退税会计科目
  • 我的初级备考日记--你都没坚持,还谈什么未来
  • 收取现金后的收入怎么算
  • 关联公司代付款协议
  • 企业劳务费用怎么处理
  • 建安行业简易计税可以抵扣吗
  • 上报汇总完成,远程清卡清不了
  • bois如何设置启动项
  • 华为手机屏幕有个圆点怎么取消
  • 开始菜单中的磁贴是什么
  • 收到短期借款会计分录怎么做
  • 房产税的应纳税额计算方法
  • 不属于工资薪金所得的是
  • 员工餐费需要附什么凭证
  • 所有非批扣和所有批扣是什么意思
  • php底层原理
  • 浅谈php的数据库管理系统
  • conda操作
  • 增值税专用发票的税率是多少啊
  • 连带责任担保会被拘留吗
  • 广告费支出税前扣除标准30
  • 完美破解什么意思
  • vue3父子组件通信
  • 怎么防止?
  • 财务费用利息收入是什么意思
  • 企业购房如何入账
  • 怎么找回丢失的华为手机
  • 股利分配是什么科目
  • 购入需安装设备的会计分录
  • 注册资本认缴与注册登记实操
  • 公司股权变更如何合理避税
  • 个人所得税多计提怎样冲销
  • 企业投资期货亏损能抵税么
  • 在建工程项目包括
  • 小规模纳税人变更一般纳税人条件
  • 商贸企业固定资产折旧可以一次性扣除吗?
  • 进项税额允许抵扣分录
  • 销项税小于进项税怎么结转
  • sql server数据库文件的扩展名是
  • sql server自定义类型怎么写入备机
  • php mysql连接
  • mysql怎么直接向表中写数据
  • 苹果的mac系统
  • usb3.0接口可以插优盘吗
  • win8怎么禁止弹窗
  • win7组合键失效
  • win7设置路由器上网
  • win10升级 其他用户
  • win10d盘无法格式化,说另一个正在使用
  • linux系统硬盘分区类型
  • win8桌面图片位置
  • win7双击有声音
  • win7系统安装不了软件怎么办
  • 怎么免费升级win10系统
  • win8电脑设置
  • win8如何调屏幕亮度
  • python中的字符型
  • javascript基于什么的语言
  • 冒烟测试和接口测试
  • html5videojs
  • android 引用第三方库
  • 河北发票查询真伪查询
  • 房地产预缴土增值税
  • 电子发票是什么格式的文件
  • 医院盖章去哪个部门
  • 如何查询企业是否注销成功
  • 北京商业企业运行基地
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设