jquery调用live()方法绑定元素的事件

导语 jquery调用live()方法绑定元素的事件与bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:$(selector) live(event
jquery调用live()方法绑定元素的事件

与bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:

$(selector).live(event,[data],fun)

参数event为事件名称,data为触发事件时携带的数据,fun为触发该事件时执行的函数。

live()函数并不是直接在当前jQuery对象匹配的每个元素上绑定事件处理函数,而是将事件处理函数"委托"给document对象来处理。由于DOM 2级的事件流机制,当事件触发时,该事件会在事件冒泡中传递给其所有的祖辈元素,一直传递到document对象为止。当事件流传递到document时,jQuery会判断当前匹配元素是否符合触发条件,如果该元素符合当前jQuery对象的选择器,jQuery就会捕获该事件,从而执行绑定的事件处理函数。
 
使用live()函数需要注意以下问题:
 
当前jQuery对象必须通过选择器字符串构造,否则无法处理触发的事件。
在调用该函数之前,jQuery会尝试查找当前jQuery选择器所匹配的元素。在大文档中这可能比较耗时。
该函数不支持方法链。例如:$("a").find(".foo").live(...)是无效的,且无法按照预期正常工作。
由于live()的事件处理函数全部附加到document对象上,因此在事件被处理之前,事件可能要经过最长最慢的事件路径。
在由于平台或事件差异,有些事件不支持冒泡,从而无法冒泡传递到document,此时可能无法处理该事件。
由于live()函数的事件处理函数全部附加在document对象上,如果通过某些方式解除了document对象上的事件绑定,可能会波及到使用live()函数委托绑定的其他元素的事件处理函数。例如$(document).off()。

以点击事件("click")为例,以下是jQuery中事件函数的常规用法
  1. // 这里的选择器selector用于指定可以触发事件的元素 
  2. // 这里的选择器ancestor应是selector的祖辈元素,selector触发的事件可以被其祖辈元素在事件流中捕获,从而以"代理"的形式触发事件。 
  3.  
  4. // jQuery 1.0+ (1.4.3+支持参数data) 
  5. $("selector").click( [ data ,] handler ); 
  6.  
  7. // jQuery 1.0+ (1.4.3+支持参数data) 
  8. $("selector").bind( "click" [, data ], handler ); 
  9.  
  10. // jQuery 1.3+ (1.4+支持参数data) 
  11. $("selector").live( "click" [, data ], handler ); 
  12.  
  13. // jQuery 1.4.2+ 
  14. $("ancestor").delegate( "selector""click" [, data ], handler ); 
  15.  
  16. // jQuery 1.7+ 
  17. $("ancestor").on( "click""selector" [, data ], handler ); 

 


https://www.nucmc.com/ true jquery调用live()方法绑定元素的事件 https://www.nucmc.com/show-13-484-1.html report 2096 jquery调用live()方法绑定元素的事件与bind()方法相同,live()方法与可以绑定元素的可执行事件,除此相同功能之外,live()方法还可以绑定动态元素,即使用代码添加的元素事件,格式如下:$(selector) live(event
TAG:jquery live()
本站欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明: 文章转载自:BETWAY官网网 https://www.nucmc.com/show-13-484-1.html
BETWAY官网网 Copyright 2012-2014 www.nucmc.com All rights reserved.(晋ICP备13001436号-1)