Obejct - это Jquery после того, как ajax-вызов дает ноль - PullRequest
0 голосов
/ 19 мая 2011

Я звоню с кликом, и это переходит на серверный вызов.

$(this).click(function(){
   alert($(this).html()); //this is giving value
   var urlLink = someURL;
   var data = "id=" + "123";
   $.ajax({
        url : urlLink,
    data : data,
    cache: false,
    success : function(resp) {
      alert($(this).html()); //this is giving null
    }
   });
});

Один раз после успеха, если я предупреждаю то же самое, давая ноль. Может ли кто-нибудь один раз, пожалуйста, дать представление, что происходит не так.

Ответы [ 2 ]

2 голосов
/ 19 мая 2011

Из документации jQuery :

Эта ссылка во всех обратные вызовы - это объект в контексте параметр передается в $ .ajax в настройки; если контекст не указан, это ссылка на Аякс сами настройки.

Либо установите параметр context объекта ajax, либо сохраните объект в переменной вне области функции обратного вызова.

$(this).click(function(){
   var $obj = $(this);
   alert($obj.html()); //this is giving value
   var urlLink = someURL;
   var data = "id=" + "123";
   $.ajax({
        url : urlLink,
    data : data,
    cache: false,
    success : function(resp) {
      alert($obj.html()); //this will give you the value too
    }
   });
});
0 голосов
/ 19 мая 2011

Прежде всего область действия оператора $(this) в вашей функции success относится к данным, возвращаемым из вызова AJAX.

Ваш первый оператор $(this) относится к элементу, по которому щелкнули.

Попробуйте изменить значение параметра cal на приведенное ниже, чтобы увидеть предупреждение о возвращенных данных:

success : function(resp) {
    alert(resp);
}

Если это все еще показывает пустое значение, возможно, имеется основная проблема с кодом, выполняемым на стороне сервера вызова AJAX.

...