我有以下内容:
var row = 99;
$.ajax({
cache: false,
url: "/Admin/" + obj.table + "s/JsonUpdate",
dataType: 'json',
type: 'POST',
data: { PartitionKey: pk,
RowKey: rk,
Entity: entity,
Field: type,
Value: val }
})
.done(updateFieldDone(json, textStatus, XMLHttpRequest, row))
.fail(function (jqXHR, textStatus, errorThrown) {
ajaxOnFailure(jqXHR, textStatus, errorThrown)
});
但我对使用.done返回的确切内容感到困惑。是否可以像这样编写updateFieldDone(json,textStatus,XMLHttpRequest,row)。以前我只有updateFieldDone()但我遇到的问题是我需要传递一个名为row的参数。我怎么能这样做?
答案 0 :(得分:2)
您可以使用context
参数将其他数据传递给成功回调:
var row = 99;
$.ajax({
cache: false,
url: "/Admin/" + obj.table + "s/JsonUpdate",
dataType: 'json',
type: 'POST',
context: { row: row },
data: {
PartitionKey: pk,
RowKey: rk,
Entity: entity,
Field: type,
Value: val
}
})
.done(function(json) {
// Here "this" will represent the object we passed as context
var row = this.row;
})
.fail(function (jqXHR, textStatus, errorThrown) {
ajaxOnFailure(jqXHR, textStatus, errorThrown)
});
或者如果你想在一个单独的函数中使用它:
var row = 99;
$.ajax({
cache: false,
url: "/Admin/" + obj.table + "s/JsonUpdate",
dataType: 'json',
type: 'POST',
context: { row: row },
data: {
PartitionKey: pk,
RowKey: rk,
Entity: entity,
Field: type,
Value: val
}
})
.done(updateFieldDone)
.fail(function (jqXHR, textStatus, errorThrown) {
ajaxOnFailure(jqXHR, textStatus, errorThrown)
});
然后定义函数:
function updateFieldDone(json) {
// Here "this" will represent the object we passed as context
var row = this.row;
}