如果我沒(méi)不加代碼限制鸡号,一個(gè)按鈕被連續(xù)點(diǎn)按,可以一直觸發(fā)心的ajax請(qǐng)求恢筝,顯然這不是我們想要的效果。我們希望的是巨坊,這一次點(diǎn)擊按鈕出發(fā)一次ajax后撬槽,等這次ajax的回調(diào)函數(shù)執(zhí)行完成后,才允許用戶(hù)進(jìn)行二次點(diǎn)擊并觸發(fā)ajax請(qǐng)求抱究。
針對(duì)上述的請(qǐng)求恢氯,我們有下面的幾種方式:
在觸發(fā)ajax請(qǐng)求后,回調(diào)函數(shù)執(zhí)行完成前鼓寺,我們禁用這個(gè)點(diǎn)擊按鈕勋拟,那用戶(hù)在這段時(shí)間內(nèi)就沒(méi)辦法使用這顆按鈕,在回調(diào)函數(shù)執(zhí)行后妈候,恢復(fù)該按鈕敢靡。
在觸發(fā)ajax請(qǐng)求后,回調(diào)函數(shù)執(zhí)行完成前苦银,我們將js函數(shù)中的flag置為0啸胧,這樣子讓用戶(hù)再次點(diǎn)擊按鈕時(shí)赶站,無(wú)法觸發(fā)$.ajax,等到回調(diào)函數(shù)執(zhí)行成功纺念,我們將flag重新置為1贝椿,這樣子$.ajax 就又可以執(zhí)行了。
代碼如下所示:
<script type="text/javascript">
$(function(){
var flag=1;
function ajaxTest(){
if(flag){
$.ajax({
url: "test.php",
type: "POST",
data: 456,
dataType: 'json',
beforeSend: function(){
flag=0 },
success: function (result) {
if(result) {
console.log(result);
}
flag = 1;
}
});
}
}
$('#btn').bind('click', function() {
ajaxTest();
});
});
</script>