jQuery中事件命名空间
A.命名空间:是为了把一些类和类的实例更好地管理而定义的把这些类和实体集合起来的一个
团体;其实就是实现分类管理,一个表示符代表一个命名空间,比如people.students,
people.teacher
1.什么是jQuuery事件的命名空间?
1.1、其实就是在事件对象对应多个事件处理程序的时候用于分类管理,比如click.process1
2.事件的命名空间有什么作用?
2.1、当对象多次被设置了一种类型事件(如click)不被覆盖且事件处理程序不相同,而我们又需
要对某次设置事件进行操作时候(删除某次事件及其事件处理函数),这时候我们就可以使用命名
空间来方便定位到那次事件;看代码片一
html代码
<div style="width: 400px;height: 400px;border: solid 1px #000"></div>
代码片一
/*代码段1:带名称的事件处理函数*/
var eventsMap = {
"click.one": handler1,
"click.two": handler2
}
function handler1(e){
console.log("click.one");
}
function handler2(e){
console.log("click.two");
}
$("div").on(eventsMap);
$("div").off("click.one");
/*代码段2:匿名的事件处理函数*/
var eventsMap = {
"click.one": function(e){
console.log("click.one");
},
"click.two": function(e){
console.log("click.two");
}
}
$("div").on(eventsMap);
$("div").off("click.one");
总结:
1.执行以上代码段1可以发现$("div").off("click.one");被注释的时候,输出结果是
click.one,click.two,没注释的时候输出结果是click.two,说明事件click.one被解绑而不影
响到事件 click.two
2.执行以上代码段2,发现结果和执行代码段一一样;
3.以上结果说明事件的命名空间可以用来解绑事件绑定包括事件处理程序是匿名函数的情况