Javascript oninput/onkeyup/onkeydow/onpropertychange不';我不在IE8工作

Javascript oninput/onkeyup/onkeydow/onpropertychange不';我不在IE8工作,javascript,jquery,Javascript,Jquery,正如你可能已经从标题中注意到的那样,我正在努力使活动正常进行,IE给了我一段艰难的时光。我尝试了所有可能的组合,但似乎都不起作用 我试图模仿谷歌的建议列表。访问者应该能够使用箭头键进入列表,这是一个jquerykeydown事件。但是,此事件也会同时在IE8中呈现对建议列表的请求,因此箭头键功能结束(因为请求正在处理中) 我知道一定有一个简单的解决办法,但我看不出来。谢谢你的帮助。这是一个演示: 它适用于所有浏览器,但不适用于IE。在元素存在之前附加事件 始终仅在$(document).read

正如你可能已经从标题中注意到的那样,我正在努力使活动正常进行,IE给了我一段艰难的时光。我尝试了所有可能的组合,但似乎都不起作用

我试图模仿谷歌的建议列表。访问者应该能够使用箭头键进入列表,这是一个jquerykeydown事件。但是,此事件也会同时在IE8中呈现对建议列表的请求,因此箭头键功能结束(因为请求正在处理中)

我知道一定有一个简单的解决办法,但我看不出来。谢谢你的帮助。这是一个演示:


它适用于所有浏览器,但不适用于IE。

在元素存在之前附加事件

始终仅在
$(document).ready()方法中使用元素,以确保它们存在并加载到文档中

在您的特定情况下,只需移动所有代码:

el("inp").oninput=function(){
  addScript("http://www.google.nl/complete/search?callback=suggest&q="+this.value);
}

$('#inp').keydown(
function (e){
    var curr = $('#test').find('.current');
    //......
}
//.....
$(文档)中。准备就绪(
您已经有了

在IE中也适用于我的实时测试用例:

(您的原始代码在IE中确实不起作用)

您是否真的在使用搜索工具?如果不是,可能值得一看,这对我的问题有什么帮助?因为如果您不使用搜索工具,那么select.js可能适合您的需要,这意味着您不必重新发明轮子。此代码在各个角度都不同……我理解您的意思,但它仍然不起作用对我来说…我在windows 7上使用IE8。是的,它在那里也不起作用。我想这是因为“oninput”在IE中不起作用,这基本上就是问题所在。你可以将中的“oninput”改为“onpropertychange”,然后再改为“onpropertychange”。但是你将无法使用箭头键进入列表。这是因为(首先)输入字段获得一个新值,然后(第二个)触发一个新事件,该事件是对“脚本”的请求(建议)这是一个简单的问题。这是一个恼人的循环,我似乎无法打破。嗯…对不起,我没有任何新的想法如何解决这个问题。IE9工作正常吗?我不知道。我没有安装IE9,这是一台工作中的计算机。但我真的不在乎IE9,因为大多数人都在使用xpIf,如果你能告诉我如何排除这个问题的话在输入字段中键入e箭头键,这将解决问题。我知道如何使用“if()”包含某些内容,但我不知道如何排除。。