<script>
$(document).ready(function(){
$('.delete').live('click', function(e){
alert('delete');
e.preventDefault();
});
});
</script>
<a href='#' id='_1' class='delete'>Delete</a>
给我一个错误:
未捕获的TypeError:对象[object Object]没有方法'live'
我只是没有看到问题?
答案 0 :(得分:122)
.live()
是一个已弃用的函数(从1.7以上)并完全从jQuery 1.9 +中删除。
您可以使用.on()
或.bind()
方法:
答案 1 :(得分:13)
如果对.live()
的调用位于您自己的代码中,只需使用http://api.jquery.com/live中显示的规则将其更改为.on()
。
如果代码在第三方jQuery插件中,请使用jQuery Migrate插件恢复.live()
,直到作者更新其插件:https://github.com/jquery/jquery-migrate#readme。
在生产网站中,不要使用引用jQuery的“最新”版本的网址,例如http://code.jquery.com/jquery-latest.js或http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js,因为它们会在发布新版本的jQuery时自动更新如果网站不兼容,您的网站会突然中断。
答案 2 :(得分:3)
如果您使用的是jQuery 1.7+,请使用on(...)
代替live(...)
检查一下:http://api.jquery.com/on/
答案 3 :(得分:3)
有一种情况,当.on()和.bind()都不起作用时:当添加事件处理程序时元素不存在。这就是live()所做的。
答案 4 :(得分:3)
旧
$("a.offsite").live("click", function(){ alert("Goodbye!"); }); // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); }); // jQuery 1.4.3+
新
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); }); // jQuery 1.7+
答案 5 :(得分:1)
<script>
$(document).ready(function(){
$('.delete').on('click', function(e){
alert('delete');
e.preventDefault();
});
});
</script>
答案 6 :(得分:0)
有一个jQuery migrate插件(使用它).......它将解决问题
ASP.NET MVC ajax-unobtrusive + jQuery 1.9 http://bugs.jquery.com/ticket/13220