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中运行,那么为了使它正常工作,我应该改变什么?
的“onpropertychange”事件对象好好尝试一下包括'keyCode'属性,因为它不是一个键盘事件 - 它无关,与用户输入的所有,事实上。所以'e.keyCode'是未定义的或为null,并且永远不会等于箭头键码。我会说你不应该使用'oninput'或'onpropertychange',因为1st不是跨浏览器(就像你找到的那样),第二个与键盘事件无关。改用keyup事件(无论如何你已经使用过)。虽然我不是一个jQuery的人,所以我不能给你确切的代码,但它太难以模仿输入行为 – Flambino
感谢您的反馈,我不知道onpropertychange与无关keybord。 – Youss
没有问题。 'onpropertychange'的目的是侦听对象的属性(变量)何时更改。换句话说,完全是为了“在javascript内部”发生的变化 - 这些变化可能是由用户造成的,但基本上任何改变对象属性的东西都会触发它。当你开始在一个字段中输入内容时,一些字段的属性可能会改变,所以它看起来和'oninput'一样,但实际上这是一个“副作用”,可以这么说。也就是说,在某些情况下它可以做到这一点,但在这里我会亲自去寻找一个跨浏览器的解决方案。 – Flambino