`

jQuery的事件命名空间-Namespaced Events

 
阅读更多

jQuery的事件命名空间-Namespaced Events

命名空间简单易懂的说就是为了避免混淆,恰似人类的姓+名。专业解释请看http://zh.wikipedia.org/wiki/命名空间

命名就是取名,比如两个人都叫做小明,空间就是区分命名的,比如一个小明姓王,一个小明姓张。王,张的姓就是空间,命名+空间(姓,名合体:王+小明,张+小明),你就不会混淆到底在说哪个小明。

jquery的事件命名空间,就是为了区分同一个jquery元素绑定的多个同名事件,使用方法就是: $.bind(“事件名.区分后缀”, function),$.trigger(“事件名.区分后缀”)。下面仅以unbind举例说明,trigger也是同样道理:

  1. <scripttype="text/javascript">
  2. $(function(){
  3. $("body").bind('click',function(){
  4. console.info('第一次单击绑定输出');
  5. });
  6. $("body").bind('click',function(){
  7. console.info('第二次单击绑定输出');
  8. });
  9. $("#unbind").click(function(){
  10. $('body').unbind('click');
  11. console.info('解除了body的所有单击事件');
  12. });
  13. });
  14. </script>

以上代码绑定了两次click事件,会同时执行。unbind(‘click’),就会解除全部的click事件。

如果我只想解除其中之一,而不是解除所有的单击事件,怎么办?答案就是使用命名空间。看以下代码:

  1. <scripttype="text/javascript">
  2. $(function(){
  3. $("body").bind('click.one',function(){
  4. console.info('第一次单击绑定输出');
  5. });
  6. $("body").bind('click.two',function(){
  7. console.info('第二次单击绑定输出');
  8. });
  9. $("#unbind").click(function(){
  10. $('body').unbind('click.one');
  11. console.info('只解除body的第一次单击事件');
  12. });
  13. $("#unbind-all").click(function(){
  14. $('body').unbind('click');
  15. console.info('解除了body的全部单击事件,包括有命名空间的单击事件');
  16. });
  17. });
  18. </script>

当解除click.one时候,click.two事件就被保留了下来。但是unbind(‘click’)会解除所有(无论有没有命名空间)的单击事件。

简单的说: 杀死王小明,那么张小明会活下来。杀死小明,那么代表王小明和张小明都要被干掉。

所以,jquery的事件命名空间就是提供一种途径,让你恰当的对指定事件解除绑定(unbind)或触发(trigger),而不影响其他已绑定的“同名不同姓”的事件。

PS. 官方说明 http://docs.jquery.com/Namespaced_Events

在jquery1.2+就已经可以使用命名空间。在jquery1.3+以后,还可以这样绑定:

  1. $('.class').bind('click.a.b',function(){});
  2. $('.class').trigger('click.a');
  3. $('.class').unbind('click.b');
  4. //经测试 click.a.b === click.a === click.b 这样的命名空间有什么用?囧,貌似曾用名,现用名,但还是同一个人。

另外看看这样:

  1. $("a").bind("click.one",function)
  2. $("a").bind("mouseover.one",function)
  3. $("a").unbind(".one");//结果会怎样呢?
  1.  

http://cssor.com/jquery-namespaced-events.html

分享到:
评论

相关推荐

    jquery-3.7.0.min.js(jQuery下载)

    jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)jquery-3.7.0.min.js(jQuery下载)...

    jquery.datepicker-zh-CN.js

    &lt;script src="./public/js/jquery-ui-1.10.3.min.js"&gt; &lt;script src="./public/js/jquery.datepicker-zh-CN.js"&gt;&lt;/script&gt; &lt;link href="./public/css/jqueryui/jquery-ui-1.10.3.min.css" rel="stylesheet"&gt; $( "#...

    jQuery动画特效---精通JavaScript+jQuery

    第6课 - JavaScript事件 - [精通JavaScript+jQuery] 第7课 - 表格与表单 - [精通JavaScript+jQuery] 第8课 - Javascript调试与优化 - [精通JavaScript+jQuery] 第9课 - Ajax - [精通JavaScript+jQuery] jQuery...

    jquery-事件冒泡

    jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡jquery-事件冒泡...

    jQuery摄像头插件jquery-webcam-plugin

    **jQuery摄像头插件jquery-webcam-plugin** 在网页开发中,集成摄像头功能可以帮助用户实时捕捉图像,广泛应用于在线证件照上传、视频聊天、虚拟试衣间等场景。`jQuery webcam plugin`是一个优秀的JavaScript库,它...

    jquery插件jquery-ui-1.8.2.custom.min.js

    《jQuery UI与jQuery插件深度解析——以jquery-ui-1.8.2.custom.min.js为例》 在Web开发领域,jQuery库以其简洁易用的API和强大的功能深受开发者喜爱。而jQuery UI作为jQuery的一个扩展,提供了丰富的用户界面组件...

    前端项目-jquery-outside-events.zip

    本项目“前端项目-jquery-outside-events”聚焦于一个特定的jQuery扩展,即`outside-events`,这是一个插件,它允许开发者绑定事件处理器到那些在指定元素外部触发的事件。 ### 一、jQuery Outside Events 插件 ...

    jquery精简版jquery-small.js

    jquery 精简版 jquery 精简版 jquery 精简版jquery 精简版 jquery 精简版 jquery 精简版 jquery 精简版

    jquery-ui-1.8.16.custom.min.js/jquery-ui-1.8.16.custom.css

    这个压缩包包含两个关键文件:`jquery-ui-1.8.16.custom.min.js` 和 `jquery-ui-1.8.16.custom.css`,这些都是jQuery UI的特定版本,即1.8.16。这个版本在当时是一个广泛使用的稳定版本,提供了丰富的功能和组件。 ...

    jQuery打印插件----jQuery.print.js

    jQuery打印插件----jQuery.print.js实现网页的打印功能,亲测有效

    前端项目-jquery-touch-events.zip

    在“前端项目-jquery-touch-events.zip”这个压缩包中,我们找到了一个专门处理触摸事件的jQuery插件,它旨在解决在支持触摸的浏览器上存在的点击延迟问题,特别是对于那些包含触摸UI的网页应用。 标题“前端项目-...

    Jquery智能提示完整全部版本vsdoc.js

    jquery-1.3.2-vsdoc.js jquery-1.8.3.min.js jquery-1.3.2.min.js jquery-1.4.1-vsdoc.js jquery-1.4.1.min.js jquery-1.4.2-vsdoc.js jquery-1.4.2.min.js jquery-1.4.3-vsdoc.js jquery-1.4.3.min.js ...

    jquery-ui-1.10.3.min.js

    jquery-ui-1.10.3.min.js

    jQuery版本迁移辅助插件jquery-migrate-1.2.1.min.js

    jQuery版本迁移辅助插件,如果您使用的低版本jQuery改为高版本后出现错误,可以试试这个插件。用来检测和恢复在jQuery1.9版本中已删除或已过时的API。jquery-migrate-1.2.1.js,jquery-migrate-1.2.1.min.js

    jquery-printTable-1.0.js

    * jquery 表格打印插件 * * 作者: LiuJunGuang * 日期:2013年6月4日 * 分页样式(需要自定义): * @media print { * .pageBreak { page-break-after:always; } * } * 使用例子: * $(function(){ * $...

    插件jquery-ui-timepicker-addon.js

    jquery插件jquery-ui-timepicker-addon.j

Global site tag (gtag.js) - Google Analytics