今天做項目的時候突然發現a標簽下用disabled無法使它的點擊事件失效(貌似ie下可以,沒有測試過),
首先說一下項目要求,點擊a標簽(點擊之后以防多次快速點擊,這里需要點擊后使標簽a實現),觸發ajax提交數據,成功后回調函數里
再使其恢復點擊可用:
$('#goaid').click(function(){
$( this).prop("disabled", true);//無法使a標簽失效
$.ajax({
url:'check.php',
type:'POST',
data:{
'mobile':$('#mobile').val()
},
dataType:'json',
success:function(response){
if(response.result==1) {
//數據處理
}else{
//數據處理
}
}
});
});
因為之前處理這種情況一直是用button處理,一直沒有留意a不支持disbled
現在要說解決方案了
第一種:設置一個全局變量
$(function(){ var flag = 1; $('#goaid').click(function(){ if( flag == 1){ flag = 0; $.ajax({ url:'check.php', type:'POST', data:{ 'mobile':$('#mobile').val() }, dataType:'json', success:function(response){ flag = 1; if(response.result==1) { //數據處理 }else{ //數據處理 } } }); } }); });
第二種:將兩個元素疊在一起
只是個人的一種想法,做兩個相同樣子的元素(其中一個為觸發元素)
function kai(){ $("#kai").hide(); $("#guan").show(); } function guan(){ $("#kai").show(); $("#guan").hide(); }
第三種:動態添加和刪除class
$('.class').click(function(){
if($(this).hasClass("op_disable")){
return false;
}
$(this).addClass("op_disable");
$.ajax({
....
success:function(){
$(this).removeClass("op_disable");
}
});
});
