双驱动模糊事件

double actuating onblur event

本文关键字:事件 模糊      更新时间:2023-09-26

我有javascript代码,应该在焦点转移时执行一次。一切正常,但是由于某种奇怪的原因,此代码执行了两次,因此我给出了两个警报窗口。

$(document).ready(function() {
    $('#username').blur(function() {
        var formData = {
            "username":$('#username').val()
        };
        $.ajax({
            url:'check.php',
            type:'POST',
            data:'jsonData=' + $.toJSON(formData),
            success: function(res) {
                alert(res);
            }
        });
    });
});

我做错了什么?

某些浏览器(Chrome,可能是 Safari)会在浏览器窗口失去焦点时触发单独的"模糊"事件。这对我来说似乎是一个错误,我不知道可以做些什么。

详细说明:如果您在<input>上有一个"模糊"处理程序,并且它有焦点,然后您在浏览器窗口外单击(或 ALT-TAB 到另一个应用程序),则 Chrome 会触发两个"模糊"事件。这两个事件看起来几乎相同,因此很难判断您是否应该注意。

最好的建议是切换一些"类"值或"焦点"和"模糊"上的内容,并忽略看起来不处于正确"我只是专注"状态的"模糊"。

这是我就这个问题发布的问题。

我在div 之前移动了这段代码 #username 一切都按预期工作。