Javascript Jquery live函数突然停止工作
我使用jQueryJavascript Jquery live函数突然停止工作,javascript,jquery,Javascript,Jquery,我使用jQuerylive()函数检测用户何时按下一些特殊键(箭头等): 它正常工作了几个月,但昨天突然停止工作,阻止了下面每一行JS代码的执行。我试图用.keyup函数替换它,但这没有帮助。可能发生了什么?.live在jQuery 1.9中被删除。如果调用jQuery的最新版本,它将中断 更改代码以使用。在上,我假设您已更新到jQuery的最新版本live()自jQ1.7以来一直被弃用,现在从1.9起被删除 相反,您应该使用带有委托参数的on(): $(document).on('keydow
live()
函数检测用户何时按下一些特殊键(箭头等):
它正常工作了几个月,但昨天突然停止工作,阻止了下面每一行JS代码的执行。我试图用
.keyup
函数替换它,但这没有帮助。可能发生了什么?.live在jQuery 1.9中被删除。如果调用jQuery的最新版本,它将中断
更改代码以使用。在上,我假设您已更新到jQuery的最新版本
live()
自jQ1.7以来一直被弃用,现在从1.9起被删除
相反,您应该使用带有委托参数的on()
:
$(document).on('keydown', '.TextBox1', function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
//...
}
});
请注意,为了获得最佳性能,您应该将上例中的
文档
替换为最近的父元素.TextBox1
,该元素在页面加载后不会动态附加到DOM。从jQuery 1.7开始,.live()方法已被弃用。使用.on()附加事件处理程序。较旧版本的jQuery用户应优先使用.delegate(),而不是.live()
有关jQuery.live的详细信息,请阅读本文。live已弃用。 尽管严格来说不尽相同,但请使用.on() 对于您的示例,它看起来像:
$('body').on('keydown', '.TextBox1', function() {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
...
}
}
live实际上已经在JQ1.9上被删除,而不仅仅是被弃用!您可以使用插件以实现兼容性,也可以将代码更新到上。live()已在最新版本的jQuery 1.9中删除 您可以改为使用,或者将代码更改为使用jq 1.9中不推荐使用的
.on
.live()
,因此您可以尝试此方法
$('.TextBox1').on('keydown', function() {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
...
}
}
您是否已将jquery更新为1.7
从jQuery1.7开始,不推荐使用.live()方法 使用.on()附加事件处理程序:
$('.TextBox1').on('keydown', text_box_key_down_function);
您还可以使用绑定:
$('.TextBox1').bind('keydown',text_box_key_down_function);
.live在JQ1.9发布时被删除,所以我想您已经将Jquery更新到最新版本了 现在,试试:
$('.TextBox1').on('keydown', function() {
var keyCode = e.keyCode || e.which;
if (keyCode == 40) {
e.preventDefault();
...
}
}
jQuery 1.9之后删除了.live()
从现在起,您必须在上使用
。使用jquery网站上提到的方法。
你的例子是
$(document).on(“keydown”和“.TextBox1”,函数(){
});代码>.live在JQ 1.9时被删除,但现在有了同时运行.live和.on的解决方案
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
您在console中是否遇到任何错误?昨天是否发生了其他任何事情?我打赌是的。自jQuery 1.7以来已弃用,并在1.9中删除。改为使用。@Jon,是的,我不得不将jquery链接从替换为ajax.googleapis.com(显然是最新的),因为它没有加载。如果这就是你的意思。谢谢你的回答,我想我是唯一一个不知道的人。XD7“几乎相同”的答案,我选择这是正确的,因为这是第一个。
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>