Heureusement, il existe des solutions simples pour pallier à ce petit désagrément. La première consiste à utiliser l'option "context" :
$("input").click(function()
{
$.ajax({
//...
context: this,
success: function(json) {
// `this` se réfère bien à 'input'
}
});
});
Utilisation de l'élément de "$.proxy" :
$.ajax({
//...
success: $.proxy(function(json) {
// `this` se réfèrera au second argument de `$.proxy`
}, this)
});
Une troisième solution :
var element = this;
$.ajax({
//...
success: function(json) {
// `this` se réfère à l'objet jQXHR
// `element` se réfère à l'élément DOM
// `$(element)` se réfère à l'objet jQuery de notre élément
}
});