Когда вы находитесь внутри функции обратного вызова, контекст функции отличается от того, когда вы настраиваете запрос.Следовательно, этот объект относится к чему-то другому (в данном случае я думаю, что это XMLHttpRequest
объект.)
Есть два способа сделать это.Вы можете либо сохранить объект this
в другой переменной, а затем использовать эту переменную для доступа к элементу, например:
var element = $(this);
$.ajax({
url: '<?php echo site_url('ajax/event_attendance_status') ?>/' + $(this).attr('rel'),
success: function(data) {
if (data == '1') {
$(element).addClass('selected');
};
}
});
Альтернативное, откровенно более приятное и элегантное решение - использовать jQuery.proxy
метод для обеспечения обратного вызова в правильном контексте.
$.ajax({
url: '<?php echo site_url('ajax/event_attendance_status') ?>/' + $(this).attr('rel'),
success: jQuery.proxy(function(data) {
if (data == '1') {
$(this).addClass('selected');
}, this);
}
});