oninput / onkeyup / onkeydow / onpropertychange在IE8中不起作用

时间:2011-07-28 12:16:54

标签: javascript jquery

正如你可能已经从标题中注意到的那样,我正在努力使事件正常工作,而IE正在给我带来困难。我尝试了所有可能的组合,但似乎都没有。

我正在尝试模仿Google建议列表。访问者应该能够使用箭头键进入列表,这是一个Jquery keydown事件。然而,此事件还在IE8中同时呈现建议列表的请求,因此箭头键功能结束(因为正在作为女仆的请求。)

我知道必须有一个简单的解决方案,但我看不到它。感谢帮助。这是一个演示:at jsbin

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

1 个答案:

答案 0 :(得分:1)

您在元素存在之前附加事件。

始终只在$(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');
    //......
}
//.....

进入你已经拥有的$(document).ready(

在IE中也适合我的实时测试用例:http://jsfiddle.net/n7qAD/12/
(您的原始代码在IE中确实无效)