我有一个奇怪的错误,我不明白出了什么问题。在我的应用程序中处理TAB键时,如果我在事件处理程序中执行同步 AJAX 请求,Firefox 会将焦点放在错误的元素上。
我设法在这里制作了一个简单的测试用例:http: //jsfiddle.net/aVeQp/18/
如果单击结果部分然后按 Tab,前两次它可以正常工作(转到下一个单元格),但最后一次,它将焦点放在“home”元素上。如果您将查询更改为异步,则焦点不会转到主页按钮。
var ret = $.ajax({
type: 'POST',
url: "",
data: { action: "test"},
datatype: "xml",
async: false
});
这在 Linux 下不会发生,但我在 Windows 7 64 位下遇到 Firefox 16.0.2 的错误。
我知道 ajax 调用在 jsfiddle 上无法正常工作,但是该错误发生在我自己的安装中,并且 ajax 调用正确返回它只是为了显示代码和错误。我尝试使用 dhtmlx 的 AJAX 请求并且发生了同样的错误。
有谁知道我做错了什么?我已经尝试了很多东西,在这种特定情况下,firefox 似乎并不关心停止事件的传播。
编辑:似乎我在以前的测试中做错了什么,而 setTimeout() 最终是一个可行的解决方案。但我仍然认为它最终应该在没有这种“黑客”的情况下工作。