JQuery AJAX не будет работать - PullRequest
0 голосов
/ 17 декабря 2009

эй, я пытаюсь изменить HTML-код div после запроса ajax, запрос ajax работает. данные верны, но селектор не может найти div

вот код

$(".home .up_0").click(function(){
  $.post("includes/vote.php",   
        {
         truc : $(this).attr("id")
        },
       function(data){ 
        if(data=='fail') 
        {
          alert("Error.");
        }
        else
        {
          $(this).parents('.home').find('.score_neutre').html(data);
        }
       }
  );
});

Ответы [ 3 ]

6 голосов
/ 17 декабря 2009

Это, вероятно, потому что this не то, что вы ожидаете от внутренней функции. Вам нужно будет добавить переменную для хранения ссылки:

$(".home .up_0").click(function(){
  var this_obj = $(this);
  $.post("includes/vote.php",   
        {
         truc : $(this).attr("id")
        },
       function(data){ 
        if(data=='fail') 
        {
          alert("Error.");
        }
        else
        {
          this_obj.parents('.home').find('.score_neutre').html(data);
        }
       }
  );
});
1 голос
/ 17 декабря 2009

Ваша проблема в том, что this не указывает на то, что вы думаете.

Сделайте это:

$(".home .up_0").click(function(){
  var $this = $(this); // Cache the current `this` as a jQuery wrapped DOM element
  $.post("includes/vote.php",
       { truc : $(this).attr("id") },
       function(data){ 
          if(data=='fail') {
              alert("Error.");
          } else {
              // Reference the cached variable `$this`
              $this.parents('.home').find('.score_neutre').html(data);
          }
       });
});
0 голосов
/ 17 декабря 2009

Это может быть связано с тем, что this не представляет элемент $(".home .up_0"), поскольку он находится внутри function(data){} успеха?

Попробуйте добавить фиктивный div, id = "Test" и внутри функции успеха используйте:

£('#Test').html(data);

Это скажет вам, работает ли он. Если это так, вам нужно использовать переменную для хранения того, что представляет this.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...