2

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

        });
    });
});

我究竟做错了什么?

4

2 回答 2

5

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

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

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

这是我在该问题上发布的问题。

于 2012-07-01T14:55:35.277 回答
-1

我将此代码移到#username div 之前,一切正常。

于 2012-07-03T07:35:21.890 回答