如何阻止 ajax 重复上一个请求
How to stop ajax from repeating previous request?
我有多个带有垃圾桶图标的div
标签。
每个div
都引用一个唯一的名称,但垃圾桶图标对于所有div
标签的功能相同。
当垃圾桶图标clicked
时,模态会显示(使用 foundation.zurb(。
模态是具有两个input
值的form
:OK
和 Cancel
。
当OK
按钮clicked
我希望form
submit
触发模式显示的div
标记的唯一名称。 这是我所拥有的:
$('a#delete-book').on('click', function(event) {
console.log('clicked delete');
event.preventDefault();
var school, book, genre, url;
var self = $(this);
school = $("#school-name").text();
book = self.parent().children('h3').text();
genre = self.parent().children('span').text();
url = '/' + school + '/' + book + '-' + genre;
console.log('url:'n', url);
//REVEAL MODAL
$('#deleteModal.reveal-link').trigger('click');
doesThisWork(self, url);
});//DELETE END
function doesThisWork(self, url) {
console.log(self, url);
//EVENT LISTENER ON YES
$('form#delete-book-form').on('click', function(mevent) {
console.log('delete-book confirmed');
$.ajax({
url: url,
type: "DELETE",
dataType: "json"
})
.done(function() {
console.log('delete successful');
self.parent().remove();
})
.fail(function(err) {
console.log('error:'n', err);
alert('error:'n', err);
})
});//DELETE CONFIRM END
}
我不知道为什么当我删除另一本书时,再次提交以前的 ajax 请求。
我在某个地方错过了event.preventDefault()
吗?
有什么建议吗?
我的第一个想法是多次将事件绑定到 form#delete-book-form 元素(每次点击 a#delete-book 元素(:
$('form#delete-book-form').on('click', function(mevent)
因此,每次执行此操作时,都会将一个新的处理程序附加到 click-event。您可以尝试在 .on-语句之前的行中取消绑定事件,以删除以前的绑定:
$('form#delete-book-form'(.off('click'(;
相关文章:
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 如何将值传递到上一个html页面
- Javascript获取上一个元素的内容
- 禁用旋转木马中的下一个按钮和上一个按钮
- 引用vue.js中v-for中的上一个值
- DOM导航-上一个同级未定义
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 如何在用户返回和上一个按钮时刷新下拉列表
- 删除“;上一个“;以及“;下一个“;基于当前幻灯片
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- HTML5历史记录-返回上一个完整页面按钮
- 算法:从数组(javascript/angular)中按当前日期获取上一个和下一个事件
- 如何使请求等待上一个请求完成
- 在慢速网络上,上一个Ajax请求会被下一个取消
- 将ajax请求添加到上一个ajax请求所附加的元素中
- 使用 ajax 请求获取上一个和下一个对象
- 在完成上一个请求之前中止新的 AJAX 请求
- 如何阻止 ajax 重复上一个请求
- jQuery File Upload插件如何将文件上传到服务器——每个文件都在一个POST请求中,或者全部在一个请求中
- plupload-用上传的文件发送另一个请求参数