Javascript 双驱动模糊事件
我有javascript代码,应该在焦点转移时执行一次。一切正常,但由于某些奇怪的原因,该代码执行了两次,因此我给出了两个警告窗口Javascript 双驱动模糊事件,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有javascript代码,应该在焦点转移时执行一次。一切正常,但由于某些奇怪的原因,该代码执行了两次,因此我给出了两个警告窗口 $(document).ready(function() { $('#username').blur(function() { var formData = { "username":$('#username').val() }; $.ajax({ url:'
$(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)会触发单独的“模糊”事件。对我来说,这似乎是一个错误,我不知道该怎么办
详细说明:如果你在一个
上有一个“模糊”处理程序,并且它有焦点,然后你在浏览器窗口外单击(或者在另一个应用程序上单击ALT-TAB),那么Chrome会触发两个“模糊”事件。这两个事件看起来几乎一样,所以很难判断你是否应该注意
我最好的建议是在“焦点”和“模糊”上切换一些“类”值或其他值,忽略一个看起来不处于正确的“我只是聚焦”状态的“模糊”
当浏览器窗口失去焦点时,一些浏览器(Chrome,可能是Safari)会触发单独的“模糊”事件。对我来说,这似乎是一个错误,我不知道该怎么办
详细说明:如果你在一个
上有一个“模糊”处理程序,并且它有焦点,然后你在浏览器窗口外单击(或者在另一个应用程序上单击ALT-TAB),那么Chrome会触发两个“模糊”事件。这两个事件看起来几乎一样,所以很难判断你是否应该注意
我最好的建议是在“焦点”和“模糊”上切换一些“类”值或其他值,忽略一个看起来不处于正确的“我只是聚焦”状态的“模糊”
我把这段代码移到了#username div之前,一切都正常工作了 我把这段代码移到了#username div之前,一切都正常工作了 您是否有多个具有
id=“username”
属性的元素?好的,如果您将alert
替换为console.log
,会发生什么情况?这场比赛还有两次吗?萨尔曼A,是的,它出现了两次。警报只会发生一次。您的代码可能运行了两次吗?如果您为“blur”放置两个事件处理程序,您将得到ajax调用……嗯,我在Firebug中看到两个check.php请求。如果我只发布一次,为什么会发生这种情况?您是否有多个具有id=“username”
属性的元素?好的,如果您将alert
替换为console.log
,会发生什么情况?这场比赛还有两次吗?萨尔曼A,是的,它出现了两次。警报只会发生一次。您的代码可能运行了两次吗?如果您为“blur”放置两个事件处理程序,您将得到ajax调用……嗯,我在Firebug中看到两个check.php请求。如果我只发布一次,为什么会发生这种情况?我有一个类似的问题,但后来我完全忽略了它(只有chrome tho,显然不是Safari)。现在知道原因很好。如果我将“blur”事件更改为“onclick”事件,则此问题仍然存在。所以,我在opera和firefox中也遇到了问题,不仅仅是chrome(或safari),我也遇到了类似的问题,但后来我完全忽略了它(只有chrome tho,显然不是safari)。现在知道原因很好。如果我将“blur”事件更改为“onclick”事件,则此问题仍然存在。所以,我在opera和firefox中也有问题,不仅仅是chrome(或safari)