Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2010, 19:50
Интересующийся
Отправить личное сообщение для roma86 Посмотреть профиль Найти все сообщения от roma86
 
Регистрация: 16.08.2009
Сообщений: 22

Обращение к элементу внутри метода .ajax()
Здравствуйте.
Есть n элементов с классом click.
При клике по такому элементу на сервер отправляется нечто и возвращается нечто:
$(".link").click(function() {
          $.ajax( {
             url : '/index.php/test/test',
             type : "POST",
             data : "id=" + $(this).attr('id'),
             success : function(data) {
                alert (data);
          },
          cache : false,
          error : function(e) {
             alert("error: " + e);
          }
          });
       });

соответственно при удачном исходе метод использует параметр success.
Как внутри этого метода обратиться к элементу с классом .click клик по которому вызвал отправку данных.
короче, не работает вот это:
....
success : function(data) {
                $(this).prev("p").html(data);
          },
....

Оно и понятно,
this
здесь это видимо сама функция. Тогда как?
Если писать просто (".click") это затронет все подобные элементы, а нужен только инициатор.
Спасибо тем кто откликнется.
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2010, 20:26
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

судя по вашей соседней теме, вы пытаетесь решить одну проблем с двух разных стороны.
тот вариант, который вы там придумали себе, заведомо неправильный.
могли бы создать одну тему, с указанием своих идей по решению ее.
$(".link").click(function() {
          var _this=this;//сохраняем в замыкании кликнутую ссылку
          $.ajax( {
             url : '/index.php/test/test',
             type : "POST",
             data : "id=" + $(this).attr('id'),
             success : function(data) {
                alert (data);
                $(_this).prev("p").html(data);//берем переменную _this из замыкания
          },
          cache : false,
          error : function(e) {
             alert("error: " + e);
          }
          });
       });
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2010, 21:52
Интересующийся
Отправить личное сообщение для roma86 Посмотреть профиль Найти все сообщения от roma86
 
Регистрация: 16.08.2009
Сообщений: 22

Спасибо за ответ. Все работает.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как внутри класса вызвать метод из соседнего метода Shahurik Общие вопросы Javascript 2 13.11.2009 12:20