我必须在mouseover
上显示元素。
这个元素中的细节是通过ajax传播的。
用户界面不畅通的问题"由于ajax问题。
返回false在成功之前执行。为什么呢?
var companyInfoHeight = $("#company-info").outerHeight();
$('.notifications-container .notification .notification-info .notification-from-user').on('mouseover', function(event){
var base = $(this)
jQuery.ajax({
url: tooltipUrl,
type:'POST',
data: {userId : $(this).attr('data-userid')},
success:function(data,textStatus){
$("#personInfo").html(data)
$("#personInfo").css({'top':base.offset().top-userInfoHeight-115,'left':base.offset().left}).show();
}
});
return false;
})
function onMouseOut(){
$('.user-info').on('mouseleave', function(event){
$(this).hide();
})
}
onMouseOut();
答案 0 :(得分:0)
因为成功是延迟事件(异步)。 您的计算机需要一些时间才能向服务器发送消息。成功是计算机将消息发送到服务器后运行的功能
如果我运行此代码,则会提醒您#34; 2"之前" 1":
setTimeout(function(){alert("1")}, 100);
alert("2")
因为setTimeout是一个延迟事件,所以ajax调用的工作方式相同。
您可能正在寻找的是html get函数,这些函数会在完成之前等待收到服务器信息: