【问题标题】:Does jQuery's blur event focus another element on a page?jQuery 的模糊事件是否将另一个元素聚焦在页面上?
【发布时间】:2011-04-06 15:00:33
【问题描述】:

我知道调用 jQuery 事件 $(selector).blur(); 将调用 trigger 并运行模糊事件处理程序。

这是否会在页面上提供任何其他元素,例如文档、正文、焦点?

注意虽然这看起来相当简单,但我还没有找到有关 jQuery API 或 SO 或 Google 的详细信息。

【问题讨论】:

  • 查看我的编辑。在 IE 中就不一样了。

标签: jquery events blur


【解决方案1】:

我认为它不会给任何其他元素带来焦点。它似乎只是完全转移了注意力(实际上,不在 IE 中查看我的编辑)。我按照这些思路连接了一个 jsfiddle example

HTML

<div id="test">
    <input id="test2" />
    <input id="test3" />
    <input id="test4" />
</div>

JavaScript

$(function() {
    $('*').focus(function() {
        alert(this.id);
    });
    $('input').keypress(function(evt) {
        if (evt.which == '13') {
            $(this).blur();
            evt.preventDefault();
        }
    });
});

基本上,它会在任何元素获得焦点时发出警报,并且当您在任何输入框中按 Enter 时,它会调用 .blur()。在 Opera 中,当这种情况发生时,没有其他元素获得焦点。在 Firefox 中,警告框将焦点从元素上移开,因此您需要使用 console.log() 而不是 alert(),但它的作用方式相同。

编辑
我在 IE 中检查了它,似乎焦点已更改为 body 元素。如果你有 alert(this); 而不是 alert(this.id); 它表示当输入丢失时 body 元素会获得焦点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多