【发布时间】:2011-04-17 14:30:49
【问题描述】:
我正在为网站制作 AutoSuggest 小部件,其工作方式是,当用户在输入文本框中写入内容时,会显示带有建议的 div,并且用户可以通过鼠标或上下箭头导航它.每个单词都是单独建议的(不像 Google 建议它在整个短语中的位置。
我在使用 Google Chrome 输入框时遇到问题,因为当我按下向上或向下箭头时,浏览器会出现默认行为 - 使用 carret 跳转到文本框的末尾或开头(例如使用 Home 或 End 按钮) .在 Firefox 或 Internet Explorer 上没有这样的效果。如何禁用此效果?
我正在从事件处理函数返回“false”,并且还使用了这里的函数 http://www.javascripter.net/faq/canceleventbubbling.htm 但仍然 carret 在 Chrome 上跳跃...
编辑:在 Safari 上效果相同...
【问题讨论】:
-
一年前写自动提示时遇到同样的问题...
-
我注意到 Safari 存在相同的行为,因此它是一种 WebKit 的工作方式 -.- 还发现要完成这项工作,因为我希望用户必须使用 ctrl+down 或 up。 ..
-
你在使用 jQuery 吗?无论哪种方式,尝试使用
return false;捕获keydown、keyup和keypress,并在返回之前将导航代码放入keydown处理程序中。 -
不,我取消了每个与键相关的事件,但仍然存在跳闸,我想这不是由事件驱动的,而是某种内部浏览器行为;/
标签: javascript google-chrome safari dom-events event-bubbling