jQuery.bind() 函数详解

  • Post author:
  • Post category:其他



bind()

函数用于

为每个匹配元素的一个或多个事件绑定事件处理函数

此外,你还可以额外传递给事件处理函数一些所需的数据。

执行

bind()

时,事件处理函数会绑定到每个匹配元素上。因此你使用

bind()

所有button元素绑定了click事件,是为当时文档中存在的每个button元素绑定click事件。如果之后你向文档中添加了新的button元素,绑定事件不会对其生效。如果你希望绑定事件对未来新添加的元素也生效,请使用

on()



delegate()



live()

等事件函数(尽量优先使用靠前的事件函数)。

此外,你可以为同一元素、同一事件类型绑定多个事件处理函数。触发事件时,jQuery会按照绑定的先后顺序依次执行绑定的事件处理函数。

要删除通过

bind()

绑定的事件,请使用unbind()函数。

该函数属于

jQuery

对象(实例)。

语法


bind()

函数主要有以下两种形式的用法:


用法一

jQueryObject.bind( events [, data ], handler )


用法二

:jQuery

1.4.3 新增支持该用法。

jQueryObject.bind( events [, data ] [, isDefaultBubble ] )


用法三

:jQuery

1.4 新增支持该用法。

jQueryObject.bind( eventsMap )

参数

参数 描述
events
String类型一个或多个用空格分隔的事件类型和

可选的命名空间

,例如”click”、”focus click”、”keydown.myPlugin”。
data
可选/任意类型触发事件时,需要通过

event.data

传递给事件处理函数的任意数据。
handler
Function类型指定的事件处理函数。
isDefaultBubble
可选/Boolean类型指定触发事件时,是否允许元素的默认行为和事件冒泡。默认为

true


eventsMap
Object类型一个Object对象,其每个属性对应事件类型和可选的命名空间(参数

events

),属性值对应绑定的事件处理函数(参数

handler

)。

关于参数

events

中可选的命名空间(1.4.3+才支持),请参考最下面的示例代码。

参数

handler

中的

this

指向当前DOM元素。

bind()

还会为

handler

传入一个参数:表示当前事件的

Event对象

参数

handler

的返回值与DOM原生事件的处理函数返回值作用一致。例如submit(表单提交)事件的事件处理函数返回

false

,可以阻止表单的提交。

参数

isDefaultBubble

用于指示是否允许元素的默认行为和事件冒泡。如果该值为

false

,它将阻止元素的默认行为(例如:触发click事件的链接的默认跳转行为,触发submit事件的表单的默认提交行为)和事件的冒泡传递。

返回值


bind()

函数的返回值为

jQuery类型,返回当前jQuery对象本身。

示例&说明

以点击事件(“click”)为例,以下是jQuery中事件函数的常规用法(某些函数也存在其它形式的用法,此处暂不列出):

// 这里的选择器selector用于指定可以触发事件的元素
// 这里的选择器ancestor应是selec