Javascript 单击事件时向服务器发送多个Ajax请求
我有一个用户界面,当有人点击一个按钮时,系统会打开一个带有一些消息的引导模型&一个是或否按钮,如果“否”按钮点击了引导,就关闭,当“是”按钮点击时,ajax请求被发送到服务器 如果我单击按钮三次,然后关闭模式,即单击“否”,则问题是对话中的所有三次都没有发送ajax请求,但当我第四次单击按钮并在模式上单击“是”时,总共有4次请求同时发送到服务器,也就是说,服务器会记住最后3次单击事件。我怎样才能简化这个过程 这是代码Javascript 单击事件时向服务器发送多个Ajax请求,javascript,jquery,ajax,modal-dialog,bootstrap-modal,Javascript,Jquery,Ajax,Modal Dialog,Bootstrap Modal,我有一个用户界面,当有人点击一个按钮时,系统会打开一个带有一些消息的引导模型&一个是或否按钮,如果“否”按钮点击了引导,就关闭,当“是”按钮点击时,ajax请求被发送到服务器 如果我单击按钮三次,然后关闭模式,即单击“否”,则问题是对话中的所有三次都没有发送ajax请求,但当我第四次单击按钮并在模式上单击“是”时,总共有4次请求同时发送到服务器,也就是说,服务器会记住最后3次单击事件。我怎样才能简化这个过程 这是代码 $('.js--acc-display').on('click','.js--
$('.js--acc-display').on('click','.js--verify', function () {
var mode = $(this).data('mode');
$conformDialogue.find('.modal-body').text('Custom Message');
$conformDialogue.modal('show').on('click', '#js--conform-ok', function(e) {
$conformDialogue.modal('hide')
//// Ajax Request Code Here /////
});
});
这是一个常见的陷阱,simpe解决方案可能只是在请求时隐藏按钮。或者使用属性“disabled”,这将适用于大多数浏览器
$conformDialogue.modal('show').on('click', '#js--conform-ok', function(e) {
/* on click disable the button */
$('#js--conform-ok').attr('disabled', true);
$conformDialogue.modal('hide');
//// Ajax Request Code Here /////
/* on ajax-end enable again */
$('#js--conform-ok').attr('disabled', false);
});
我不认为这是一个解决方案,因为这将在UI中产生问题,并且将一事无成!!无论如何,我创建了一个单独的插件,作为一个构象对话!!这段代码中的问题是一个愚蠢的错误……若你们感兴趣,我可以解释给你们听。谢谢你抽出时间。