Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery live函数突然停止工作_Javascript_Jquery - Fatal编程技术网

Javascript Jquery live函数突然停止工作

Javascript Jquery live函数突然停止工作,javascript,jquery,Javascript,Jquery,我使用jQuerylive()函数检测用户何时按下一些特殊键(箭头等): 它正常工作了几个月,但昨天突然停止工作,阻止了下面每一行JS代码的执行。我试图用.keyup函数替换它,但这没有帮助。可能发生了什么?.live在jQuery 1.9中被删除。如果调用jQuery的最新版本,它将中断 更改代码以使用。在上,我假设您已更新到jQuery的最新版本live()自jQ1.7以来一直被弃用,现在从1.9起被删除 相反,您应该使用带有委托参数的on(): $(document).on('keydow

我使用jQuery
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>