`
suqing
  • 浏览: 185848 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

jQuery .on() and .off() 命名空间

 
阅读更多

jQuery1.7开始,jQuery引入了全新的事件绑定机制,jQuery .on() 和 off() 两个函数统一处理事件绑定,也是jQuery触发DOM元素事件的最佳方法。有时候既要trigger手动触发事件,也要从DOM元素上解绑事件,比如:

$('.item').on('click', doThisCoolThing);
$('.item').on('click', doThisOtherCoolThing);
$('.item').trigger('click'); // 两个click事件都触发
$('.item').off('click'); // 两个click事件都解绑

 

使用事件命名空间我们可以在创建事件的时候指派名称到事件处理器,并在使用trigger()和off()时通过这个名称指定到特定的函数。调用的时候就可以通过使用不同的命名空间灵活的指派事件. 比如:

$('.item').on('click.navigate', doThisCoolThing);
$('.item').on('click.notify', doThisOtherCoolThing);
$('.item').trigger('click.navigate'); // 只有带有navigate这个命名空间的方法才会触发
$('.item').off('click.notify'); // 只有带有notify这个命名空间的方法才会解绑

 

也可以使用多个命名空间,无论使用哪个名字都会生效,通过命名空间代码规范(产品.模块.事件)让事件的层次更清晰:

$('.item').on('click.navigate.notify', doThisCoolThing);
$('.item').trigger('click.navigate'); // 将触发click事件
$('.item').off('click.notify'); // 将解绑click事件

 

参考资料: 
http://www.andismith.com/blog/2011/11/on-and-off/
http://www.andismith.com/blog/2013/02/jquery-on-and-off-namespacing/

分享到:
评论

相关推荐

    jQuery插件

    5. **事件插件**:增强事件处理,如`.on()`、`.off()`等。 6. **工具类插件**:提供通用功能,如`.trim()`(去除字符串两端空格)、`.inArray()`(检查元素是否在数组中)等。 ### 四、使用jQuery插件 在HTML中...

    JQuery chm帮助文件(多个版本)

    这个版本还引入了新的API,如`.on()`方法的命名空间支持,增强了事件处理能力。 3. **jQuery 1.4.4**: 这个较早的版本引入了$.proxy()函数,用于绑定函数上下文,以及$.trim()用于字符串的修剪,增强了DOM操作和...

    高清彩版 jQuery.Design.Patterns

    #### A Refresher on jQuery and the Composite Pattern **jQuery** 是一个快速、简洁的 JavaScript 库,使用户能更方便地处理 HTML 文档、选择 DOM 元素、制作动画效果,并为应用程序添加 AJAX 交互。其核心功能...

    jquery命名空间模拟

    本篇文章将深入探讨如何在JavaScript中模拟jQuery的命名空间,以实现更有序、更安全的代码组织。 首先,我们需要理解JavaScript的命名空间是如何工作的。由于JavaScript本身没有内置的命名空间机制,我们通常通过...

    jQuery文章.rar

    在编写插件时,应注意封装和命名空间,以避免与其他插件冲突。 综上所述,jQuery以其简洁的API和强大的功能,大大简化了网页的开发工作,无论是DOM操作、事件处理,还是Ajax通信,都让开发者能更专注于业务逻辑,而...

    浅谈jquery之on()绑定事件和off()解除绑定事件

    `on()`和`off()`是jQuery中的两个关键函数,分别用于事件绑定和解除绑定。本文将深入探讨这两个函数的用法及其在实际开发中的应用。 `on()`函数是jQuery 1.7版本引入的新功能,用于替代之前的老式事件绑定方法如`...

    jquery1.43源码分析(核心部分)

    这里使用了 IIFE 来创建一个私有作用域,这样可以避免污染全局命名空间,并且允许 jQuery 内部定义私有变量和方法。 #### 三、jQuery 构造函数 ```javascript var jQuery = function(selector, context) { return...

    jquery-3.3.1Windows

    在“jquery-3.3.1”这个压缩包中,很可能包含了jQuery库的JavaScript文件,通常命名为`jquery-3.3.1.min.js`或`jquery-3.3.1.js`,这个文件可以直接引入到HTML页面中,以便在网页上使用jQuery的功能。开发者可以通过...

    jquery3.2.1官方正版

    - **事件处理**: jQuery 提供了统一的事件处理方法,如`.on()` 用于绑定事件,`.off()` 用于解除绑定,`.trigger()` 用于触发事件。 - **动画效果**: 使用 `.fadeIn()`, `.slideUp()`, `.animate()` 等方法可以轻松...

    jquery 1.8.0.js

    4. **事件处理**:jQuery的事件绑定`on()`和解除绑定`off()`在1.8.0中得到改进,支持命名空间,使得多层事件处理更加灵活。此外,`delegate()`和`undelegate()`已被`on()`和`off()`取代,提供了更好的性能和可维护性...

    jquery插件集合

    - 处理事件:利用jQuery的事件系统,如`on()`和`off()`,响应用户交互。 - 注册和初始化:确保插件在正确的时间被注册和执行。 5. **jQuery插件的优缺点** - 优点:简化代码,提高开发效率,丰富的插件库,良好...

    jquery资料--jquery学习资料

    4. **事件处理(Events)**:jQuery统一了事件处理方式,通过`.on()`、`.off()`等方法绑定和解绑事件,如`$("#button").on("click", function() {...})`监听按钮点击事件。 5. **动画效果(Effects)**:jQuery的`....

    jquery 插件开发 pdf

    - jQuery的事件绑定机制,如`on()`, `off()`, `trigger()`, 使得响应用户交互变得简单。 - 通过`$(document).ready()`或`$(window).load()`确保插件在DOM加载完成后执行。 7. **动画效果** - jQuery的动画功能,...

    jquery 3.2.1集合.rar

    5. **AJAX(Asynchronous JavaScript and XML)**:jQuery简化了异步数据请求,`$.ajax()`是核心方法,支持GET和POST等多种请求方式,`getJSON()`和`getScript()`分别用于获取JSON数据和JavaScript脚本。 6. **链式...

    jQuery1.8.0API简体中文手册.chm

    事件处理是jQuery中的重要一环,如`.on()`, `.off()`, `.click()`, `.mouseover()`等函数提供了简便的方式来绑定和解绑事件。效果和动画功能,如`.fadeIn()`, `.slideUp()`, `.animate()`等,使得平滑的视觉效果得以...

    Jquery 事件的订购与退订案例

    在jQuery中,我们使用`.off()`方法来完成这个任务。假设我们想要移除上面的双击事件绑定,可以这样做: ```javascript $('.element').off('dblclick'); ``` 这将删除所有在`.element`元素上对双击事件的绑定。如果...

    jQuery Notes For Professionals.pdf

    ##### 1.3 jQuery 命名空间("jQuery" 和 "$") - **命名空间概念**:命名空间是在软件工程中用于防止名称冲突的一种机制。jQuery 提供了两种方式来引用它的核心函数:`jQuery` 和 `$`。 - **$ 符号**:通常情况...

    jquery 1.7---1.11 chm文档

    5. jQuery 1.11:继续优化性能,修复错误,并引入了一些新的API,如`.on()`的命名空间功能,允许通过事件类型和命名空间来分离和解除绑定。例如,`$("#elem").on("click.namespace", function() {...})`和`$("#elem...

    jQuery 技巧

    - 良好的插件应遵循命名空间规则,保持封装,并提供可配置选项。 以上只是 jQuery 技巧的冰山一角,实际上,jQuery 还提供了丰富的 API 和强大的生态系统,包括大量高质量的插件和库,如 jQuery UI、Bootstrap 等...

    jquery入门文档ppt

    jQuery不会与全局命名空间冲突,这减少了与其他JavaScript库产生冲突的可能性,也意味着学习曲线相对平缓。 接下来,会讲解如何开始使用jQuery。要开始使用,你需要先下载jQuery库,可以从官方网站获取最新版本,...

Global site tag (gtag.js) - Google Analytics