jquery 中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别

JavaScript010

jquery 中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别,第1张

一、含义不同

1、$("div").live("click",function(){}):法为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

2、$("div").click(function(){}):当点击元素时,会发生 click 事件。

二、特点不同

1、$("div").live("click",function(){}):方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

2、$("div").click(function(){}):当鼠标指针停留在元素上方,然后按下并松开鼠标左键时,就会发生一次 click。

三、规定不同

1、$("div").live("click",function(){}):规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

2、$("div").click(function(){}):click() 方法触发 click 事件,或规定当发生 click 事件时运行的函数。

参考资料来源:jquery官网-live

参考资料来源:jquery官网-click

1、延时绑定事件功能不同:

jquery $('#btn').click在文档流中,后续通过脚本动态添加的元素(符合 id="#btn"),是没有绑定click事件的。

$("#btn").live("click",function()后续通过脚本动态添加的元素(符合 id="#btn"),也是绑定了click事件的。如何使用 live() 方法向尚未创建的元素添加事件处理器。

live()可以将事件绑定到当前和将来的元素(eg:为id=zy元素绑定点击事件,而当用js动态生成一个节点并插入到dom文档结构中时,如果是用bind()绑定的,怎么新插入的节点将不会有该bind绑定事件。而live()则可以)

2、绑定方式不同:

.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到DOM节点上。而click()是直接绑定在元素上。

3、底层API支持不同:

click()方法:在jqeury事件处理API中,bind()是其API基础。click(),mouseover(),mousermove等来处理事件,真正起作用的是bind()。而这些方法都只是辅助作用(别名函数),简化使用。都只有一个参数(触发事件时执行的回调函数)。live()不同,不依赖bind()API。

参考资料来源:jQuery-.click()

参考资料来源:jQuery-.live()