铬不';t在keycode/keypress(JQuery)上不能正常工作

铬不';t在keycode/keypress(JQuery)上不能正常工作,jquery,Jquery,我正在开发一个类似excel的环境中的数据插入(想法是从excel上传数据复制粘贴) 我正在使用JQuery,在Firefox中运行得很好,但是Chrome在keypress上是一个让人头疼的问题,我真的不知道如何让它工作 下面是一个例子: 我现在做的是这样的: $(document).live('keypress', function(e){ if(e.keyCode==38 && y!=1){ // Up y--; }else if(e.keyCode==40 &am

我正在开发一个类似excel的环境中的数据插入(想法是从excel上传数据复制粘贴)

我正在使用JQuery,在Firefox中运行得很好,但是Chrome在keypress上是一个让人头疼的问题,我真的不知道如何让它工作

下面是一个例子:

我现在做的是这样的:

$(document).live('keypress', function(e){
if(e.keyCode==38 && y!=1){ // Up
    y--;
}else if(e.keyCode==40 && y!=largo){ // Down
    y++;
}
从第67行看一看,这似乎有效:

$(document).on('keydown', function(e){
    if(e.which==38 && y!=1){ // Up
        y--;
    }else if(e.which==40 && y!=largo){ // Down
        y++;
}

keypress
替换为
keydown
可以起到作用。也不必在文档上使用
live()
或其他委托事件处理程序,因为它不是动态的,实际上总是可用的。和
e.
在jQuery中被规范化。

这似乎有效:

$(document).on('keydown', function(e){
    if(e.which==38 && y!=1){ // Up
        y--;
    }else if(e.which==40 && y!=largo){ // Down
        y++;
}


keypress
替换为
keydown
可以起到作用。也不必在文档上使用
live()
或其他委托事件处理程序,因为它不是动态的,实际上总是可用的。和
e.
在jQuery中是标准化的。

您在“…第67行”中失去了我。。。哎呀!为什么文档上需要live()?它总是可用的?
但是Chrome是一个令人头痛的问题,我真的不知道如何让它工作。
到底什么东西不工作?你能不能请你核实一下这个问题,因为一旦小提琴死了,这个问题就没有意义,对未来可能出现类似问题的用户也没有价值。试着提出一个完整的问题,发布相关的代码并说明确切的问题,这不依赖于任何人都必须查看在不久的将来就消失的链接。如果您使用的是jQuery,请使用
which
,而不是
keyCode
——这两个属性可能因浏览器而异,但是jQuery为您标准化了
属性,该属性为
属性。@adeneo这是因为它稍后会对数据进行数字计费。您在“…第67行”中丢失了我。。。哎呀!为什么文档上需要live()?它总是可用的?
但是Chrome是一个令人头痛的问题,我真的不知道如何让它工作。
到底什么东西不工作?你能不能请你核实一下这个问题,因为一旦小提琴死了,这个问题就没有意义,对未来可能出现类似问题的用户也没有价值。试着提出一个完整的问题,发布相关的代码并说明确切的问题,这不依赖于任何人都必须查看在不久的将来就消失的链接。如果您使用的是jQuery,请使用
which
,而不是
keyCode
——这两个属性可能因浏览器而异,但是jQuery为您标准化了
,该属性为
。@adeneo这是因为它将在以后对数据进行数字计费。是的,非常感谢。例如,当我调用addX()函数时,live()非常有用。@Alanallano:
live()
在1.7中被弃用,在1.9中被删除。如果需要绑定到动态元素,可以在
上使用带有委托的
:即:
$(文档)。在('keydown','idofdynamicelement',function(){//您的常用代码})
。即使
live()
since 1.7在发动机罩下使用
on()
,建议使用
on
since 1.7。在升级到1.9时,不依赖migrate js来填补已删除功能的空白等,也为您节省了很多麻烦。@FrançoisWahl我没有更改“live”per“on”,因为粘贴数据有问题。在这个JQuery版本上可以使用live。也许我会在有时间的时候迁移它,谢谢:)是的,非常感谢。例如,当我调用addX()函数时,live()很有用。@AlanArellano:
live()
在1.7中被弃用,在1.9中被删除。如果需要绑定到动态元素,可以在
上使用带有委托的
:即:
$(文档)。在('keydown','idofdynamicelement',function(){//您的常用代码})
。即使
live()
since 1.7在发动机罩下使用
on()
,建议使用
on
since 1.7。在升级到1.9时,不依赖migrate js来填补已删除功能的空白等,也为您节省了很多麻烦。@FrançoisWahl我没有更改“live”per“on”,因为粘贴数据有问题。在这个JQuery版本上可以使用live。也许我会在有时间的时候迁移它,谢谢:)