我有一个<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();
});
答案 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;
}
});
});