【发布时间】:2012-11-13 11:33:45
【问题描述】:
我遇到了一个奇怪的错误,我不明白出了什么问题。在我的应用程序中处理 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() 最终是一个可行的解决方案。 但我仍然认为它最终应该在没有这种“黑客”的情况下工作。
【问题讨论】:
标签: javascript ajax firefox