4.2.2 撤销事件
一般情况下,一旦事件被绑定,他是永久存在,但是在一些交互情况下,需要撤销先前被绑定的事件,比如:一个网页中有多步操作,当用户操作完成的时候,网页需要只读模式,这样的话我们就必须撤销以前绑定的事件,jQuery提供的one函数可以执行一次,之后自动撤销,但是大多数的情况,我们需要自己控制是不是要撤销,jQuery为我们提供了一个和bind对应的unbind函数,来控制撤销已经绑定的事件。
unbind(eventType,listener)
unbind(event)
撤销元素的指定事件,如果没有参数,将撤销所有绑定的事件。
参数:
eventType(String)可选,事件类型。
Listener (Funtion)可选,要从每个匹配元素的事件中反绑定的事件处理函数。意思就是加了这个参数,就只撤销eventType中的该函数的操作,而不是把整个eventType事件全部撤销了。
Event (Event)事件名称(这个在自定义事件的时候才有用)
返回值:jQuery数组对象
这个函数就是用来撤销选中元素的事件,通过参数来判断做那些操作,既可以删除所有绑定的事件,也可以删除指定的事件,同时还可以删除指定事件,指定的子操作,因为jQuery在绑定事件的时候是累加,而不是覆盖。
在具体做撤销的时候,我们应该注意这个问题,如果要撤销一个指定事件的子操作,在绑定的时候就不能用匿名函数,因为函数是一个引用,做了匿名函数的时候,在unbind的时候就找不到上次绑定的引用,这样就撤销不掉。
jQuery的bind和unbind已经处理了浏览器的兼容,我们写程序的时候并不需要考虑是那种浏览器下执行,是不是很简单了,在jQuery对象中,jQuery定义了自己的event属性,这个是属性是自定义的,和浏览器的event是两个概念,在event属性中做了浏览器兼容处理,到这里jQuery的事件模式就讲完了,那些东西还需要我们开发人员处理?我们讲后边的应用实例就会明白。