Javascript 构建一个Google建议框,在不使用jQuery的情况下响应键盘事件
我需要建立一个谷歌建议风格下拉框,但不幸的是,由于各种许可限制,我无法使用jQuery或Prototype。几乎我唯一可以使用的是公共领域的东西,我可以修改它,并且不需要将其他人的所有权归于它 在任何情况下,我都可以很好地处理AJAX和服务器端脚本。我遇到的难题是如何让Javascript响应键盘事件:Javascript 构建一个Google建议框,在不使用jQuery的情况下响应键盘事件,javascript,events,keyboard,Javascript,Events,Keyboard,我需要建立一个谷歌建议风格下拉框,但不幸的是,由于各种许可限制,我无法使用jQuery或Prototype。几乎我唯一可以使用的是公共领域的东西,我可以修改它,并且不需要将其他人的所有权归于它 在任何情况下,我都可以很好地处理AJAX和服务器端脚本。我遇到的难题是如何让Javascript响应键盘事件: 当用户按下箭头键时,选择列表中的下一项 点击[Enter]时,选择并用所选项目填充文本框 点击[Esc]时关闭建议框 等等等等等等 想法?示例?不完全是您想要的,但可能会引起您的兴趣 您可以
- 当用户按下箭头键时,选择列表中的下一项
- 点击[Enter]时,选择并用所选项目填充文本框
- 点击[Esc]时关闭建议框
- 等等等等等等
想法?示例?不完全是您想要的,但可能会引起您的兴趣 您可以使用此代码附加/分离事件(与IE和W3C事件模型兼容,因此应适用于所有浏览器): 然后在处理程序中,您可以看到按下了什么键,并根据需要执行任何操作 希望有帮助,
安德烈看一看。我在许多项目中使用过这个库。它适用于所有A级浏览器,允许您捕获关键事件,并且许可证非常宽松。为什么您不能使用jQuery?
events = {
addEvent: function(obj, e, handler) {
if (!obj._attachedEvents)
obj._attachedEvents = new Array();
if (obj._attachedEvents[e])
this.removeEvent(obj, e);
obj._attachedEvents[e] = handler;
if (obj.addEventListener)
obj.addEventListener(e, handler, false);
else if (obj.attachEvent)
obj.attachEvent('on' + e, handler);
},
removeEvent: function(obj, e) {
if (!obj._attachedEvents || !obj._attachedEvents[e])
return;
if (obj.removeEventListener)
obj.removeEventListener(e, obj._attachedEvents[e], false);
else if (obj.detachEvent)
obj.detachEvent('on' + e, obj._attachedEvents[e]);
obj._attachedEvents[e] = null;
},
cancelEvent: function(e) {
e = e || window.event;
if(e.preventDefault)
e.preventDefault();
if(e.stopPropagation)
e.stopPropagation();
e.cancelBubble = true;
e.returnValue = false;
return false;
},
getTarget: function(e) {
return e.srcElement || e.target;
}
};