双启动onblur事件

时间:2012-07-01 14:49:49

标签: javascript jquery ajax

我有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);
            }

        });
    });
});

我做错了什么?

2 个答案:

答案 0 :(得分:5)

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

详细说明:如果你在<input>上有一个“模糊”处理程序,它有焦点,然后你点击浏览器窗口外(或ALT-TAB到另一个应用程序),然后Chrome开启两个“模糊”事件。这两个事件看起来都差不多,所以很难说你是否应该注意。

我最好的建议是在“焦点”和“模糊”上切换一些“类”值或某些东西,并忽略一个看起来没有处于正确“我只是专注”状态的“模糊”

Here's the question I posted on that issue.

答案 1 :(得分:-1)

我在#username div之前移动了这段代码,一切都按原样运行。