Задать вопрос
@Hidadmin

Не видит this внутри ajax success. Как исправить?

Пытаюсь обновить элементы после отработки функции, но внутри нее почему не видит $this, соотв не могу обратиться к элементам. Пример:

alert($(this).parents('tr:eq(0)').find('input.refresh_url_id_input').val()); - выводит 91

		$.ajax({
			url:	'/archive.php',
			type:	'GET',
			contentType: 'application/x-www-form-urlencoded',
			data:	 'url=123'+'&query=456',
			success: function(response){
				var str='qwerty';

// alert($(this).parents('tr:eq(0)').find('input.refresh_url_id_input').val());
// alert(tHiss.parents('tr:eq(0)').find('input.refresh_url_id_input').val());
alert($(this).parents('tr:eq(0)').find('input.refresh_url_id_input').val()); - выводит UNDEFINED
				$(this).parents('tr:eq(0)').find('.url_update_loader').css({display:'none'});
				$(this).parents('tr:eq(0)').find('.url_update').html(str);
				$(this).parents('tr:eq(0)').find('.url_update').css({display:'inline'});
			}
		}).error;
	});


Как исправить?
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
в success контекст (this) меняется на событие, потому надо заранее сохранять контекст верхнего уровня, чтобы его не потерять, например так
var $this = $(this);

$.ajax({
  ...
  success: function(response) {
    alert($this.parents...)
  }
})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы