jquery – 将参数传递给$.then函数

前端之家收集整理的这篇文章主要介绍了jquery – 将参数传递给$.then函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有以下内容

$(".remove-item").click(function(e) {
    e.preventDefault();

    var url = $(this).attr('href');
    var id = $(this).data("id");
    $.when(removeItem(url))
      .then(removeItemResponse(id));
});

var removeItemResponse = function(data,id) {
   console.log(data);
   console.log(id);
};

var removeItem = function(url) {
  return $.post(url);
};

以上是行不通的,因为在处理ajax请求之后我在日志中什么也得不到,我知道它与我如何处理removeItemResponse中的参数有关.我需要使用来自ajax帖子的返回数据,但也传递我在click函数中检索到的id.

最佳答案
removeItemResponse(id)正在立即执行该函数,并且您没有传递第一个延迟的结果.试试这个:

.then(function(data) { removeItemResponse(data,id) });

done()也可以在这里工作:

.done(function(data) { removeItemResponse(data,id) });

您可以简化和处理这样的故障:

removeItem(url)
    .done(function(data) { removeItemResponse(data,id) });
    .fail(function(result) { /* do something else */ });

猜你在找的jQuery相关文章