我有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);
}
});
});
});
我做错了什么?
答案 0 :(得分:5)
当浏览器窗口失去焦点时,某些浏览器(Chrome,可能是Safari)会触发单独的“模糊”事件。这对我来说似乎是一个错误,我不知道可以做些什么。
详细说明:如果你在<input>
上有一个“模糊”处理程序,它有焦点,然后你点击浏览器窗口外(或ALT-TAB到另一个应用程序),然后Chrome开启两个“模糊”事件。这两个事件看起来都差不多,所以很难说你是否应该注意。
我最好的建议是在“焦点”和“模糊”上切换一些“类”值或某些东西,并忽略一个看起来没有处于正确“我只是专注”状态的“模糊”
答案 1 :(得分:-1)
我在#username div之前移动了这段代码,一切都按原样运行。