JQuery检测到焦点丢失到页面上的另一个元素,但没有丢失浏览器的焦点

时间:2013-09-27 10:16:10

标签: jquery onblur lost-focus

使用jquery我正在使用模糊事件检测文本框中丢失的焦点。

然后我隐藏文本框并将其替换为包含输入文本的标签。

我的问题是即使浏览器失去焦点也会触发此事件(即使在按下“Alt Gr”键以在文本框中插入特殊字符如arobase @时,也会在linux / firefox下发生)

是否可以检测到焦点仅丢失到页面上的另一个元素?

编辑:添加示例jsfiddle http://jsfiddle.net/XMp5n/

相关代码:

$('#emailField').blur(function() {
    $('#emailField').hide();
    $('#emailFieldLabel').show();
});

1 个答案:

答案 0 :(得分:1)

JSFiddle的功能似乎完全正常。您提到在linux/firefox中使用Alt键会导致项目失去焦点,为了纠正这个问题,您可能需要添加一个全局变量并在'document.onkeydown'函数中更改它:

        var isAlt = false;

        document.onkeydown = function(event) {
            if (event.keyCode == 18) {
                isAlt = true;
            } else {
                isAlt = false;
            }
        }

        $('#emailField').blur(function() {
            if (isAlt) {
                $('#emailField').hide();
                $('#emailFieldLabel').show();
            }
        });

检查here是否有其他Javascript密钥代码。

相关问题