L'épisode 11 du podcast yayQuery mentionne le option de contexte $. Ajax . Comment utiliser cette option dans le rappel de réussite? Ce que je fais actuellement, c'est de transmettre mes paramètres d'entrée au rappel de succès afin de pouvoir animer l'ID qui a été appelé après le succès/l'erreur. Si j'utilise l'option contextuelle, je n'ai peut-être pas à retransmettre les paramètres de la routine appelée.
Dans cet exemple, je transmets STATEID au champ de réussite afin que l'état soit supprimé du DOM une fois qu'il a été supprimé de la base de données:
$('td.delete').click(function() {
var confirm = window.confirm('Are you sure?');
if (confirm) {
var StateID = $(this).parents('tr').attr('id');
$.ajax({
url: 'Remote/State.cfc',
data: {
method: 'Delete',
'StateID': StateID
},
success: function(result) {
if (result.MSG == '') {
$('#' + result.STATEID).remove();
} else {
$('#msg').text(result.MSG).addClass('err');;
};
}
});
}
});
Tout ce que context
fait, c'est qu'il définit la valeur de this
dans les rappels.
Donc, si vous êtes dans un gestionnaire d'événements et que vous voulez que this
dans les rappels soit l'élément qui a reçu l'événement, vous feriez:
context:this,
success:function() {
// "this" is whatever the value was where this ajax call was made
}
Si vous vouliez que ce soit un autre type, définissez-le simplement et this
y fera référence:
context:{some:'value'},
success:function() {
// "this" the object you passed
alert( this.some ); // "value"
}
Dans le code que vous avez ajouté à la question, vous pouvez utiliser StateID
, mais vous n'en aurez pas vraiment besoin car vous avez déjà accès à cette variable.
var StateID = $(this).parents('tr').attr('id');
$.ajax({
url: 'Remote/State.cfc'
,data: {
method:'Delete'
,'StateID':StateID
}
,context: StateID
,success: function(result){
alert(this); // the value of StateID
alert(StateID); // same as above
if (result.MSG == '') {
$('#' + result.STATEID).remove();
} else {
$('#msg').text(result.MSG).addClass('err');;
};
}
});
Si vous définissez l'option de contexte, this
en cas de succès sera ce que vous définissez comme valeur pour context
. Donc, si vous passez un littéral d'objet contenant vos noms et valeurs de paramètres d'entrée comme contexte, vous pouvez utiliser avec succès this.param1
pour obtenir la valeur de votre premier paramètre d'entrée.
Consultez la documentation . Ajax () pour en savoir plus.