事件注册
bind
这是1.x早起版本的一种绑定方式,你看名称就比较直接。主要适用于直接绑定到已经存在的对象上,但是在1.7版本之后,推荐使用的绑定方式是on方法,原因很简单,支持事件委托嘛(I guess)! 并且jQuery自身代码中,所有与事件注册相关的操作使用的都是on方法。
还有一点需要提到的,就是通过bind绑定的事件,可以通过unbind取消。
delegate
用作事件代理代理。
live
也是用作事件代理,区别就是绑定的选择器每次都会更新。已经弃用了!
on
上面的三个方法: bind, delegate, live就是早期jQuery事件处理的主要方法,但是on出现之后,都被替换掉了。也就是说,凡事和事件打交道的时候,都要使用on,这才是老大!
one
用法和on类似,触发一次后自动取消。
off
取消事件绑定。
trigger
手动触发事件。
命名空间
使用了很久jQuery的事件绑定,才在同事那里学到可以添加命名空间这个概念。充分表明了文档的重要性,因为这个是文档里提及到的,并且就在前几段!!!
首先jQuery绑定的事件名称可以是任意String,因为可以通过trigger触发,对于不同的事件名称,可以通过添加命名空间的形式进行区分,比如click事件,我们可以添加click.namespace,也可以是click.name.space,多个命名空间并行。其实主要原因就是jQuery将每一个绑定事件对应的处理函数都存储起来了,添加命名空间,也就是对相同事件上的不同或多处事件处理函数进行区分。
这样在trigger的时候,就可以进行区分了,从而不触发其他绑定的处理函数。
事件代理
jQuery中事件流是冒泡的,也就是从触发的那个元素(event.target)开始,向document冒泡。我们可以通过event.stopPorpagation()停止冒泡。
事件代理的一大好处就是可以绑定一个元素上,检测子元素触发,而不需要绑定在N多个相同的子元素上,这样效率上会好很多。
事件对象
Event Object,jQuery的事件对象是遵守W3C标准的。关于事件对象的详细内容,参见: Event Object。
版权属于:
cicaba
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)