Ajax-在成功之前执行返回false

时间:2015-03-04 14:26:06

标签: javascript ajax

我必须在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();

1 个答案:

答案 0 :(得分:0)

因为成功是延迟事件(异步)。 您的计算机需要一些时间才能向服务器发送消息。成功是计算机将消息发送到服务器后运行的功能

如果我运行此代码,则会提醒您#34; 2"之前" 1":

setTimeout(function(){alert("1")}, 100);
alert("2")

因为setTimeout是一个延迟事件,所以ajax调用的工作方式相同。

您可能正在寻找的是html get函数,这些函数会在完成之前等待收到服务器信息:

HTTP GET request in JavaScript?