每个和$ .post的闭包

Pie*_*NAY 0 javascript ajax jquery closures

我有一个我想要编辑的项目列表

<form id="mainForm" action="machin_chose">
    <div><input name="field" value="chouchouette" /></div>
    <div class="modified><input name="field" value="trutruc" /></div>
    <div class="modified"><input name="field" value="machin" /></div>
</form>
Run Code Online (Sandbox Code Playgroud)

并在每个修改的项目上发布ajax帖子

$('#mainForm div.modified').each(function () {
    item = $(this);
    $.post(
        $('#mainForm').attr('action')
      , $(this).find(':input').serialize()
      , function (data) {
            item.removeClass('modified');
        }
    });
};
Run Code Online (Sandbox Code Playgroud)

成功发布的项目应该被删除他们的modified课程.
我试图使用一个闭包item来保持当前修改过的闭包.
但由于它是异步的,因此item总是包含最后一个修改过的.

如何在成功处理程序中检索当前发布的项目?

the*_*tem 5

您需要item使用包含每个迭代的范围var.

var item = $(this);
Run Code Online (Sandbox Code Playgroud)