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

jquery 中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别,用live的好处是什么?

一、含义不同

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个回答  推荐于2018-02-27
live 是绑定事件 举个例子 比如我用jquery 直接加载了一段html代码
原html 为
<div class="test"></div>

js为
$(".test").html("<div id="test">nihao</div>");
$("#test").click(function(){
alert("成功");
});
这个时候你点这个新加的div是没有效果的
$("#test").live("click",function(){
alert("成功");
});
加了live的话 就能显示出你要的效果本回答被提问者采纳
第2个回答  2013-05-10
使用live,可以获得事件委托的很多好处。
例如:
$('div').live("click",function(){
var targetId = event.target.id;
if(targetId == "myId"){
//当当前目标id为指定名字的话,可做适当处理。。
}
//可以有更多判断
})
在后台,jQuery会把单击处理程序绑定到document对象上,并检查event.target(或其祖先元素)是否与传入的选择符表达式(也就是这里的'div')匹配。如果匹配,jQuery会把this关键字映射到匹配的元素。这样能够避免把事件绑定到多个元素。而且,由于document对象本身在文档刚加载时就可用,甚至能够在<head>元素中包含的脚本中引用它,所以任何时候都可以在$(document).ready()外部绑定live()事件。本回答被网友采纳
第3个回答  2013-05-10
通过ajax加载过来的html是不会继承原来的事件的,比如li原来添加了click,新加进来的则点击没反映,这个时候就需要用live来重新绑定!
相似回答