2011-07-29 56 views
0

我有一个用于显示Google建议的脚本。该脚本还允许使用箭头键在建议的列表中找到。当你这样做时,“文本”在输入字段中填充。这个代码是:我如何让jquery代码在IE中工作

$("#inp").live("keyup", function(e) { 
    var search_terms = $("li.current").text(); 
    if(e.keyCode==40) 
    { 
    $("#inp").val(search_terms); 
    } 
     if(e.keyCode==38) 
    { 
    $("#inp").val(search_terms); 
    } 
}); 

完整的脚本是在这里:jsbin

的问题是,IE8不支持“oninput”所以首先请在IE测试这和替换“oninput”与“onpropertychange”,这是一个IE浏览器唯一事件(似乎)做完这些之后,你会发现,脚本不响应正确的时候,在建议列表中下来。但是,如果你删除上述代码比所有的作品都很好。但我真的需要上面的代码在IE中运行,那么为了使它正常工作,我应该改变什么?

+0

的“onpropertychange”事件对象好好尝试一下包括'keyCode'属性,因为它不是一个键盘事件 - 它无关,与用户输入的所有,事实上。所以'e.keyCode'是未定义的或为null,并且永远不会等于箭头键码。我会说你不应该使用'oninput'或'onpropertychange',因为1st不是跨浏览器(就像你找到的那样),第二个与键盘事件无关。改用keyup事件(无论如何你已经使用过)。虽然我不是一个jQuery的人,所以我不能给你确切的代码,但它太难以模仿输入行为 – Flambino

+0

感谢您的反馈,我不知道onpropertychange与无关keybord。 – Youss

+1

没有问题。 'onpropertychange'的目的是侦听对象的属性(变量)何时更改。换句话说,完全是为了“在javascript内部”发生的变化 - 这些变化可能是由用户造成的,但基本上任何改变对象属性的东西都会触发它。当你开始在一个字段中输入内容时,一些字段的属性可能会改变,所以它看起来和'oninput'一样,但实际上这是一个“副作用”,可以这么说。也就是说,在某些情况下它可以做到这一点,但在这里我会亲自去寻找一个跨浏览器的解决方案。 – Flambino

回答

0

更新了jQuery最新版本:P

+0

你是认真的..? – Youss