发布的第一条评论(附后)始终保持最佳状态

时间:2013-05-31 13:55:24

标签: jquery ajax append

我会尝试尽可能准确地描述我的问题,以及在尝试解决之前我做了什么,然后在这里寻求帮助。 我使用的脚本通过ajax添加新的注释。它工作,但像任何其他脚本..有它的问题。在我的网站上,我设置首先显示最新的评论。

所以,发布的第一条评论 - 附在顶部。

发布的第二条评论(不刷新页面)应该附加在第一条评论的顶部,而不是附加在第一条评论之下,它会像这样继续发布,第三条发布在第二条和第四条下面的第三条...

http://s8.postimg.org/407uhljl1/image.jpg

这就是魔术发生的地方 http://pastebin.com/5nFeEpZg

更准确地说:

  var the_parent_class = jQuery('#'+css_respond).parent().attr('class');

if(typeof the_parent_class != "undefined" && the_parent_class.search(/depth-/i) 

  != -1) { //threaded

   // Check if there are already replies, if not, add <ul class="children">

  if(jQuery('#'+css_respond).parent().children('.children').length) {

  // There are replies, add comment to the end of the list
   jQuery('#'+css_respond).parent().children('.children').append(tmpComment);

   } else {
   // First reply
  tmpComment = '<ul class="children">'+tmpComment+'</ul>';

  jQuery('#'+css_respond).parent().append(tmpComment) }

  else 
  {
 // Normal comment
  if(commentPosition == 'bottom') {

  jQuery('.'+css_commentlist).append(tmpComment);

  } 

  else if(commentPosition == 'top') 

  {
  jQuery('.'+css_commentlist).prepend(tmpComment);

  } 

  else {

  jQuery('.'+css_commentlist).append(tmpComment);

  }
  }
  } 
  else {

 // The commentlist doesn't exist, this is the first comment

 // Do we need to support the 'Content Press' Theme?

 if(compatContentPress == 'checked') {           

 jQuery('div.postbox').before(jQuery(tmpComment).find('div.boxcomments'));

                    } else {
  tmpComment = '<ol class="'+css_commentlist+'">'+tmpComment+'</ol>';

  jQuery('#'+css_respond).before(jQuery(tmpComment));
                    }
            }

当页面刷新时,评论会显示为应该 - 最新发布 - 所以问题必须在于附加评论。

在问这里之前,我试图在

上设置一个断点
   var the_parent_class = jQuery('#' + css_respond).parent().attr('class'); 

同时将commentPosition从'bottom'切换到'top'并从上到下切换但没有任何改变。

该脚本名为PTM Ajax Comments,我从github repo下载了它。

    commentPosition = data.commentPosition;
commentPosition = data.commentPosition;
if(commentPosition == 'bottom') {
} else if(commentPosition == 'top') {

1 个答案:

答案 0 :(得分:0)

不确定我的代码是否合适但我认为:

else {
   jQuery('.'+css_commentlist).append(tmpComment);
}

应该是:

else  {
   jQuery('.'+css_commentlist).prepend(tmpComment);
}

几乎位于文件底部