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类型指定触发事件时,是否允许元素的默认行为和事件冒泡。默认为
。 |
eventsMap |
Object类型一个Object对象,其每个属性对应事件类型和可选的命名空间(参数
),属性值对应绑定的事件处理函数(参数
)。 |
关于参数
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