如何防止ajax调用两次触发
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止ajax调用两次触发相关的知识,希望对你有一定的参考价值。
我有一个ajax
调用,当click
发生document
事件时被触发。 ajax调用似乎正在执行twice
,我不确定为什么会发生这种情况。
我的问题是:如何防止ajax调用触发twice
?
这是我的JQuery代码:
$(document).on('click', '.edit_quyet_dinh', function(){
var ma_quyet_dinh = $(this).attr("id");
var ma_cong_trinh = $(this).attr("data-id");
$.ajax({
url:"fetch_quyet_dinh.php",
method:"POST",
data:{ma_quyet_dinh:ma_quyet_dinh,ma_cong_trinh:ma_cong_trinh},
dataType:"json",
success:function(data){
$('#ten_quyet_dinh').val(data.ten_cong_trinh);
$('#shct_qd').val(data.so_hieu);
$('#so_quyet_dinh').val(data.so_quyet_dinh);
$('#ngay_duyet').val(data.ngay_duyet);
$('#ma_quyet_dinh').val(data.ma_quyet_dinh);
$('#insert_qd').val("Update");
$('#add_quyet_dinh').modal('show');
}
});
});
答案
您必须使用此代码:
$(document).on('click', '.edit_quyet_dinh', function(event){
event.preventDefault();
event.stopPropagation();
// other codes
});
这个方法停止了两次调用jquery事件的功能。
stopPropagation阻止事件冒泡事件链。
preventDefault会阻止浏览器对该事件执行的默认操作。
以上是关于如何防止ajax调用两次触发的主要内容,如果未能解决你的问题,请参考以下文章
jQuery.ajax 从 dateRangeSlider 中的 userValuesChanged 调用了两次