2

我有问题。我正在使用 jQuery 1.8.2。我想对焦点事件做出反应并将焦点重置为在特殊条件下留下的元素。现在我得到了这个非常简单的代码片段,它在 safari 中陷入了一个循环,我不明白为什么会发生这种情况......也许你可以帮助我,这是一个非常简单的例子:

JS:

$("#test").focusout( function () {
    alert("FocusOut event got triggered.");
    $("#test").focus();
});​

HTML:

<input type="text" id="test" />​

也许你想试试这个演示: http: //jsfiddle.net/ds38v/3/ 只需点击输入框并再次离开。

4

1 回答 1

3

关于此问题,存在一些浏览器差异。因此使用超时来“模拟”它,就像“leaveFocus”一样 - 然后再次“focus” - 事件:

$("#test").focusout( function () {
    window.setTimeout(function() {
        $("#test").focus();
    },1);
});​

像这样它正在工作。

我希望它有帮助...

于 2013-01-02T18:14:04.813 回答