jQuery live(“click”,function(){...})不适用于body

时间:2013-01-31 17:51:57

标签: javascript jquery

我正在尝试这个简单的代码here。它不适用于实际的click事件或被注释掉的事件。谁能解释为什么?我之前也遇到了not的问题......

4 个答案:

答案 0 :(得分:7)

这只是因为长期弃用的live函数现已从jQuery中删除。

替换

$("body").live("click",function() { alert("coo"); });

$("body").on("click",function() { alert("coo"); });

查看this page的右上角:“已移除1.9”。

答案 1 :(得分:6)

自v1.7以来,

.live已在jQuery中弃用,并已在v1.9中删除。

您应该将其替换为.on()

.on有2个绑定元素的语法,而.live只有1个。

如果绑定时元素存在,则按以下方式执行:

$('.element').on('click', function(){
});

您甚至可以使用简写:

$('.element').click(function(){
});

如果该元素当时不存在,或者将添加新元素(通常用于.live),则需要使用“事件委托”:

$(document).on('click', '.element', function(){
});

注意:您希望绑定到最近的静态元素,而不是document

答案 2 :(得分:2)

已弃用并删除live()方法。使用on()

答案 3 :(得分:1)

如果您使用的是jquery 2.0版本,则必须获得migrate 1.0

请参阅:http://jsfiddle.net/CRYDV/1/

否则您必须按照上述答案中的建议使用.on()处理程序。