一键生成多个ajax调用
One click generates multiple ajax calls
一个奇怪的现象正在发生在我身上。。
我有一个项目列表,每个项目旁边都有删除按钮来删除该文章,下面是一个例子:http://jsfiddle.net/lughino/8HYeQ/5/
$('.delete').on('click', function(e) {
e.preventDefault();
var $li = $(this).parents('li'),
$url = $(this).attr('href');
$('#delete_confirm').modal('show');
$('#delete_confirm').find('button.btn-danger').click(function() {
$.post($url, function(result) {
$('#delete_confirm').modal('hide');
$li.remove();
});
});
});
不幸的是,此示例无法重现问题
当我删除id为1的第一篇文章时,执行一个ajax调用。
当我删除id为2的第二个产品时,2个运行ajax调用,一个用于第1条,这是成功的,因为它当然已经被删除了,另一个则用于第二篇文章。
如果我在他执行3次ajax调用时删除了其他内容,以此类推。。
被保存在内存中,就好像旧id。。。你能解决这种奇怪的行为吗?
从什么到期?
这是因为您正在删除按钮单击处理程序中注册确认回调处理程序。因此,当您第一次单击删除按钮时,处理程序会注册一次,因此ajax请求会发送一次。当您第二次单击删除按钮时,又注册了一个确认处理程序,现在我们已经注册了两个确认处理。
应该是
$('.delete').on('click', function(e) {
e.preventDefault();
var $li = $(this).parents('li'),
$url = $(this).attr('href');
$('#delete_confirm').modal('show');
});
$('#delete_confirm').find('button.btn-danger').click(function() {
$.post($url, function(result) {
$('#delete_confirm').modal('hide');
$li.remove();
});
});
相关文章:
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Javascript/jQuery中的并行Ajax调用
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- node.js请求数据事件未在CORS ajax调用中触发
- 如何从ajax调用返回.wrap()元素
- Ajax调用在Firefox中不会自动响应
- AJAX调用中的非法调用
- 使用AJAX调用将GeoJSON数据拉入传单
- 在MVC 4中,对Controller的Ajax调用为空
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 在ajax调用中阻止来自JS对象的函数
- 如何在MVC5中ajax调用的部分视图中引用外部javascript
- 页面加载后的Ajax调用
- 如何使用Ajax调用特定的控制器和操作来重定向用户
- curl和fileget_contents在ajax调用后不起作用
- 在任何AJAX调用之前触发一个javascript函数
- 无法在mvc视图中使用ajax调用获取操作返回的模型对象列表
- Ajax调用ERror Cross Origin REquest:在rails中自动完成大学列表
- ASP.NET MVC 3-在ajax调用后,重定向到新页面或生成页面刷新
- 点击功能没有'ajax调用动态元素(Backbone)后无法工作