我有以下内容:
$(".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 */ });