所以我的设置包含以下几个链接
<a class="someclass" href="http://www.google.com" id="link01">Google</a>
<a class="someclass" href="http://www.yahoo.com" id="link02">Yahoo</a>
<a class="someclass" href="http://www.cnn.com" id="link03">CNN</a>
<a class="someclass" href="http://www.facebook.com" id="link04">Facebook</a>
$(".someclass").click(function() {
var currentId = $(this).attr('id');
var data = "do=clearthis&id=" + currentId;
$.ajax({
type: "POST",
url: "clearance.php",
data: data,
success: function(msg){
}
});
});
});
我正在做的是查找被点击的链接,从链接获取一个id值,并将ajax提交给我的PHP文件,这将从我的数据库中删除链接。
因此,当用户点击链接时,该链接将从我的数据库中删除。但问题是它实际上并没有起作用。我认为问题是它太快了,因为jquery开始为我发布POST表单,它已经跳转到目标链接。有没有办法诱导某种延迟,允许我的clearance.php在允许用户继续目标链接之前处理删除?
谢谢!
答案 0 :(得分:3)
制作同步AJAX请求,使其首先完成:
$.ajax({
type: "POST",
async: false,
url: "clearance.php",
data: data,
success: function(msg){
}
});
答案 1 :(得分:1)
另一种不同步请求的解决方案:
$(".someclass").click(function() {
var currentId = $(this).attr('id');
var data = "do=clearthis&id=" + currentId;
var linkUrl = $(this).attr("href");
$.ajax({
type: "POST",
url: "clearance.php",
data: data,
success: function(msg){
},
complete: function(){
window.location.href = linkUrl;
}
});
});
return false;
});