用法
.live( events, handler ) => jQuery
.live( events, handler ) => jQuery
说明:为现在和将来匹配当前选择器的所有元素附加一个事件处理程序。
-
添加的版本:1.3
.live( events, handler )
-
events类型:String包含 JavaScript 事件类型的字符串,例如 "click" 或 "keydown." 从 jQuery 1.4 开始,该字符串可以包含多个以空格分隔的事件类型或自定义事件名称。
-
handler触发事件时执行的函数。
-
-
添加的版本:1.4
.live( events [, data ], handler )
-
events类型:String包含 JavaScript 事件类型的字符串,例如 "click" 或 "keydown." 从 jQuery 1.4 开始,该字符串可以包含多个以空格分隔的事件类型或自定义事件名称。
-
data类型:PlainObject包含将传递给事件处理程序的数据的对象。
-
handler触发事件时执行的函数。
-
-
添加的版本:1.4.3
.live( events )
-
events类型:PlainObject一个或多个 JavaScript 事件类型和为它们执行的函数的普通对象。
-
注意:这个 API 在 jQuery 1.9 中已经被移除;请改用
。on()
此方法提供了一种将委托事件处理程序附加到页面的document
元素的方法,这在将内容动态添加到页面时简化了事件处理程序的使用。有关详细信息,请参阅
方法中对直接事件与委托事件的讨论。.on()
根据其后继方法重写.live()
方法很简单;这些是对所有三种事件附件方法进行等效调用的模板:
|
events
参数可以是用空格分隔的事件类型名称和可选名称空间列表,也可以是事件名称字符串和处理程序的对象。 data
参数是可选的,可以省略。例如,以下三个方法调用在函数上是等效的(但请参阅下面的附加委托事件处理程序的更有效和高性能的方法):
|
不再推荐使用.live()
方法,因为更高版本的 jQuery 提供了更好的方法而没有其缺点。特别是,使用 .live()
会出现以下问题:
- jQuery 在调用
.live()
方法之前尝试检索选择器指定的元素,在大型文档上可能是 time-consuming。 - 不支持链接方法。例如,
$( "a" ).find( ".offsite, .external" ).live( ... );
是not
有效且无法按预期工作。 - 由于所有
.live()
事件都附加在document
元素上,因此事件在处理之前会采用最长和最慢的路径。 - 在移动 iOS(iPhone、iPad 和 iPod Touch)上
click
对于大多数元素,事件不会冒泡到文档正文,并且不能与.live()
不应用以下解决方法之一:- 使用本机可点击元素,例如
a
或button
,因为它们都会冒泡到document
。 - 使用
.on()
或.delegate()
附加到document.body
级别以下的元素,因为移动 iOS 确实在体内冒泡。 - 将 CSS 样式
cursor:pointer
应用于需要冒泡点击的元素(或包含document.documentElement
的父元素)。但是请注意,这将禁用元素上的复制\粘贴,并使其在触摸时突出显示。
- 使用本机可点击元素,例如
- 在事件处理程序中调用
event.stopPropagation()
document
。 .live()
方法以令人惊讶的方式与其他事件方法交互,例如,$( document ).off( "click" )
删除通过对.live()
的任何调用附加的所有点击处理程序!
对于仍在使用 .live()
的页面,此 version-specific 差异列表可能会有所帮助:
- 在 jQuery 1.7 之前,要在使用
.live()
绑定后停止进一步的处理程序执行,处理程序必须返回false
。调用.stopPropagation()
不会完成此操作。 - 作为jQuery 1.4
.live()
方法支持自定义事件以及all JavaScript events that bubble
.它还支持某些不会冒泡的事件,包括change
,submit
,focus
和blur
. - 在jQuery 1.3.x只能绑定以下 JavaScript 事件:
click
,dblclick
,keydown
,keypress
,keyup
,mousedown
,mousemove
,mouseout
,mouseover
, 和mouseup
.
例子:
取消默认操作并通过返回 false 来防止它冒泡。
|
使用 preventDefault 方法仅取消默认操作。
|
使用 .live() 绑定自定义事件。
|
使用一个对象绑定多个实时事件处理程序。请注意,.live() 为所有段落(甚至是新段落)调用 click、mouseover 和 mouseout 事件处理程序。
|
相关用法
- JQuery .load()用法及代码示例
- JQuery UI .labels()用法及代码示例
- JQuery .length用法及代码示例
- JQuery .last()用法及代码示例
- JQuery .jquery用法及代码示例
- JQuery .scroll()用法及代码示例
- JQuery .add()用法及代码示例
- JQuery .contextmenu()用法及代码示例
- JQuery .undelegate()用法及代码示例
- JQuery .contents()用法及代码示例
- JQuery .empty()用法及代码示例
- JQuery UI .addClass()用法及代码示例
- JQuery .click()用法及代码示例
- JQuery UI .toggleClass()用法及代码示例
- JQuery .removeAttr()用法及代码示例
- JQuery .addClass()用法及代码示例
- JQuery UI .cssClip()用法及代码示例
- JQuery .next()用法及代码示例
- JQuery UI .hide()用法及代码示例
- JQuery .promise()用法及代码示例
- JQuery .trigger()用法及代码示例
- JQuery .mouseenter()用法及代码示例
- JQuery .slideDown()用法及代码示例
- JQuery UI .show()用法及代码示例
- JQuery .wrapAll()用法及代码示例
注:本文由纯净天空筛选整理自jquery.com大神的英文原创作品 .live()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。