Ajaxify超链接因此成功将加载内容,否则重定向为默认值

时间:2011-07-15 01:42:11

标签: ajax jquery

我有一个<a href>超链接。我使用了JQuery,因此单击该链接会将内容加载到当前页面中的div(即保留在同一页面中),现在可以正常工作。

但是我也想要,如果请求失败,链接会正常运行并转到href网址。

我试过了e.preventDefault();并返回false;在成功:回调函数,但它们不在正确的范围内。如果我将e.preventDefault()放在调用函数中,我以后就无法反转该效果。

这是我的代码:

$('a.more-link').click(function(e){
    var postId=$(this).closest('div.post').attr("id").replace(/^post-(.*)$/,'$1');
    var postContent=$(this).parent();
    $.ajax({
        url:"?action=ajax_load_post&id="+postId,
        success:function(data){
            postContent.html(data);
            // Can't access e.preventDefault, nor return false;
        },
        error:function(data){

        }
    });
    e.preventDefault();
});

1 个答案:

答案 0 :(得分:0)

不要担心preventDefault(),只需将用户重定向到错误函数中,如下所示:

$('a.more-link').click(function(e){
    var postId=$(this).closest('div.post').attr("id").replace(/^post-(.*)$/,'$1');
    var postContent=$(this).parent();
    var _this = $(this);
    $.ajax({
        url:"?action=ajax_load_post&id="+postId,
        success:function(data){
            postContent.html(data);
        },
        error:function(data){
            window.location = _this.attr('href');
            return false;
        }
    });
});