【发布时间】:2012-01-15 13:37:56
【问题描述】:
我知道关于 preventDefault() 无法与 Firefox 一起使用的其他问题,但它们对我没有帮助。
我有三个 SELECT 列表,我只想使用箭头键在它们之间导航而不更改任何值。该代码在 Chrome 中运行良好,但在 Firefox 中它会移动焦点,然后更改刚刚移动到的元素的值。
http://jsbin.com/ofitif/3/edit
JavaScript:
$(document).ready(function () {
$('.myinput').keydown(function (evt) { onkeydown(evt); });
$('.myinput:first').focus();
});
function onkeydown(evt) {
evt.preventDefault();
console.log(evt.which);
if(evt.which == 39) {
$(document.activeElement).next().focus();
}
else if(evt.which == 37) {
$(document.activeElement).prev().focus();
}
}
HTML:
<div id="inputs">
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<select class="myinput">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
【问题讨论】:
-
感谢@Andrew Whitaker 的编辑。下次我会确保自己包含代码。
标签: jquery events firefox event-handling preventdefault