私は場合によっては特定のテキストを表示しようとしています。
たとえば、データが正常に保存された場合は、「あなたのデータは保存されました」と表示されます。右のアイコンをクリックします。
私の問題は$.ajax
の前にありますが、すべて動作していますが、その後、私は$(this).find(...)
が私に要素を返さないと思います。
可能ですか?
は、ここに私のコードです:AJAXコールバックthis
で
$('form.modal-form').on("submit", function (event) {
event.preventDefault();
icon = 'fa-spinner fa-pulse';
text = 'Save in progress';
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
$.ajax({
type : 'POST',
data : $(this).serialize(),
url : 'assets/php/ajax/'+$(this).data('target')+'.php',
success: function(response){
var json = $.parseJSON(response);
if(json.type=='success'){
icon = 'fa-check';
text = json.message;
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
}
if(json.type=='error'){
icon = 'fa-exclamation';
text = json.message;
$(this).find('.modal-footer .pull-left').html('<i class="fa ' + icon + ' fa-fw"></i><span class="hidden-xs">' + text + '</span>');
}
}
});
});
何度も繰り返します。非同期のものを実行する前に 'this'はこれではありません。 '$ .ajax'を実行する前に' somehingElse'に 'this'を設定してください。 –