JQuery - добавить более 1 комментария не работает - PullRequest
2 голосов
/ 05 марта 2010

Этим кодом я добавляю комментарии к постам. Но есть проблема - первый комментарий работает, но я не могу добавить следующий. Я использую livequery, так что это должно работать. Вы можете мне помочь?

$('form.comment_form').livequery('submit', function a()  
  {
      var element = $(this);        
      var wall_post_id = element.attr("id");
       var wall_message = $('#comment_text'+wall_post_id).attr('value');

        $.post("home/add_comment", $(this).serialize(), function(response)
        {
            if(response.error == "0")
            {
          $("div#comments"+wall_post_id).replaceWith(response.message);
            }
            else if(response.error == "1")
            {
               alert(response.message);
               return false;
            }
      }, "json");
      return false;
   });

1 Ответ

1 голос
/ 06 марта 2010

Проблема в том, что вы используете replaceWith, полностью удаляя этот элемент DOM. Таким образом, во второй раз для второго комментария нет DIV, который больше соответствует, поэтому заменить нечего. Попробуйте добавить вместо этого. Смотрите следующий код:

$('form.comment_form').livequery('submit', function a()  
{
  var element = $(this);        
  var wall_post_id = element.attr("id");
  var wall_message = $('#comment_text'+wall_post_id).attr('value');

    $.post("home/add_comment", $(this).serialize(), function(response)
    {
        if(response.error == "0")
        {
         $("div#comments"+wall_post_id).append(response.message);
        }
        else if(response.error == "1")
        {
           alert(response.message);
           return false;
        }
  }, "json");
  return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...