在ajax成功发布之后,如何让我的jQuery不执行<a href>?

qua*_*els 6 javascript ajax jquery

我正在尝试更新数据库,只需单击一下即可将用户浏览器发送到其他页面.

Html看起来像这样:

<a id='updateLiveProgress' style='width:118px;' href='~link~'>Click here</a>
Run Code Online (Sandbox Code Playgroud)

Javascript看起来像这样:

        $("#updateLiveProgress").live("click", function(e){

            var ajaxlink = "~ajaxlink~"
            $.post(ajaxlink, function(data, e){
                return true;
            });

        });
Run Code Online (Sandbox Code Playgroud)

当用户单击该链接时,它应该通过ajax链接更新数据库,然后返回的页面将依赖于ajax数据库更新.问题是,在ajax完成更新数据库之前,页面似乎已加载.我正在尝试将click事件传递给ajax,e以防止链接执行直到ajax调用完成后,但它似乎没有工作.

我有更好的方法来完成这个吗?

Nea*_*eal 8

试着这样做:

    $("#updateLiveProgress").live("click", function(e){
        e.preventDefault();
        var href = this.href;
        var ajaxlink = "~ajaxlink~"
        $.post(ajaxlink, function(data, e){
            window.location = href;
        });
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

在jQuery 1.7的做到这一点(使用.on 替代.live):

    $("#updateLiveProgress").on("click", function(e){
        e.preventDefault();
        var href = this.href;
        var ajaxlink = "~ajaxlink~"
        $.post(ajaxlink, function(data, e){
            window.location = href;
        });
        return false;
    });
Run Code Online (Sandbox Code Playgroud)