jquery 中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别
jquery中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别,用live的...
jquery 中点击事件$("div").live("click",function(){})和$("div").click(function(){})的区别,用live的好处是什么?
展开
4个回答
展开全部
一、含义不同
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
展开全部
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的话 就能显示出你要的效果
原html 为
<div class="test"></div>
js为
$(".test").html("<div id="test">nihao</div>");
$("#test").click(function(){
alert("成功");
});
这个时候你点这个新加的div是没有效果的
$("#test").live("click",function(){
alert("成功");
});
加了live的话 就能显示出你要的效果
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用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()事件。
例如:
$('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()事件。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
通过ajax加载过来的html是不会继承原来的事件的,比如li原来添加了click,新加进来的则点击没反映,这个时候就需要用live来重新绑定!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询