2009-12-17 2 views
0

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

вот код

$(".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); 
     } 
     } 
); 
}); 
+0

Мы должны увидеть некоторые из ваших HTML-код, чтобы выяснить, почему это не работает. –

+0

Можете ли вы разместить соответствующий HTML-код? –

+1

'this', вероятно, не существует в функции обратного вызова. В JQuery наверняка есть обходной путь, но я не знаю, как это называется. –

ответ

6

Это, вероятно, потому, что 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); 
     } 
     } 
); 
}); 
0

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

Попробуйте добавить фиктивный DIV, ID = «Test» и в использовании функции успеха:

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

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

1

Ваша проблема в том, что 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); 
      } 
     }); 
}); 
Смежные вопросы