您的位置:首页 > Web前端 > JQuery

jQuery绑定事件的命名空间

2010-09-07 19:18 344 查看
jQuery提供了bind/unbind的方法,用来绑定/解绑定事件.

在开发过程中,有时候需要根据用户的操作来触发相应的事件.例如在不同的阶段给某个元素绑定了不同的处理函数.

第一阶段 bind('click', function(){});

第二阶段 bind('click', function(){});

第三阶段 bind('click', function(){});

如果想在执行完后解绑定第一阶段的click的话,需要执行 unbind('click'),

但是这样的话第二阶段和第三阶段的click事件也就随之解绑定了.

解决这个问题,有两种方法

第一种(不用匿名函数):

function fn1() {}

function fn2() {}

function fn3() {}

第一阶段 bind('click', fn1);

第二阶段 bind('click', fn2);

第三阶段 bind('click', fn3);

这样在unbind的时候就可以通过 unbind('click', fn1) 来解绑定具体的事件处理函数了.

第二种:

如果在绑定的时候想用匿名函数,那么可以通过这种方法

第一阶段 bind('click.first', function(){}); //将click事件绑定到first这个命名空间下面

第二阶段 bind('click.second', function(){}); //将click事件绑定到second这个命名空间下面

第三阶段 bind('click.third', function(){}); //将click事件绑定到third这个命名空间下面

这样想解绑定第一阶段的click事件,即可unbind('click.first')

jQuery中事件绑定的这种命名空间没有层级的概念,如果 bind('click.first.second.third', function(){})

则相当于同时绑定了命名空间

bind('click.first', function(){})

bind('click.second', function(){})

bind('click.third', function(){})

这些命名空间是并列的关系.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: