Ich habe dynamicaly hinzugefügt Eingabefelder wie diese:Wie aktualisiert man den Stil nach dem Ajax-Aufruf in jQuery?
<input id="person__1_badge_number" class="number" type="text" size="12" name="person[][1][badge][number]"/>
Und wenn ich dieses Feld hinzufügen nenne ich fallowing Funktion:
function please_rebind() {
$('.number').bind("change", function() {
$.post('/registration/sell/check_badge_number', { number: $(this).val() },
function(data) {
$(this).addClass('make_it_red');
alert(data);
}, "html");
});
}
Und es nicht hinzu, ‚make_it_red‘ Klasse meines Eingang Feld (Ich habe auch versucht, html ('foo') und andere Sachen und es funktioniert auch nicht). Ich denke, es ist, weil ich $ (this) innerhalb anderer Funktionen laufen lasse, aber ich weiß nicht, was ich damit machen soll. $ (this) .val() funktioniert und ich bekomme auch korrekte Antwort (Alarm (Daten)). Kann jemand helfen?
wollte nur hinzufügen, dass "dies" innerhalb der Rückruf für $ .post bezieht sich auf die Optionen für die angegebene Ajax-Anfrage. – ayaz
Dies ist einer der wiederkehrenden Dornen in JS, die Volatilität von 'this'. Denken Sie daran, diesen Trick zu verwenden, wenn Sie einen Rückruf definieren. Natürlich macht dies die Funktion zu einer vollständigen Schließung, was von IE-Entwicklern leistungsmäßig als "schlechte Praxis" angesehen wird. Sie ziehen es vor, JScript in diesen Fällen nicht performant zu halten. – Javier