JQuery延迟了.each()

有关如何使用 JQuery的延迟方法以及检测所有已更改的表单并将每个表单作为Ajax帖子提交的功能的任何想法?

如果我只列出一大堆表单提交但是如果我使用…我可以得到同样的工作

$('form.changed').each(function(){
  return $(this).submitWithAjax();
});

我正在尝试使用的更完整版本的代码就在这里……
at JS Fiddle

提前致谢!

解决方法

而不是“.each()”,使用“.map()”:
var deferreds = $('form.changed').map(function(i,elem) {
  return $(this).submitWithAjax();
});

$.when.apply(null,deferreds.get()).then(function() { ... });

“$.when()”允许你捆绑一堆延迟对象并等待所有它们成功(或任何失败 – 注意那里的差异).它通常允许任意数量的参数,但由于我们有一个数组,我使用了“apply()”.

请注意,我只是轻轻地使用了这些东西,所以请阅读jQuery API文档以仔细检查:-) edit – 在重新阅读您的问题时,我可能误解了您.

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...