$("body").delegate(".u-post-button", "click", function(){
var btn = $(this);
var currentPost = btn.parents('.content-event');
var content = btn.siblings('textarea[name="comment-post-content"]').val();
if (content)
{
var event_id = currentPost.find('.event-id').val();
var url= '/post-comments/'+event_id +'/';
content: content
}
$.post(url , data, function(data){
var obj = $.parseJSON(data);
var lang = '';
$.each(obj, function() {
lang += this['html'];
});
$(currentPost.find('.latest-comment')).append(lang);
$(currentPost.find('.comment-post-content')).val("");
});
}
else
{
$(currentPost.find('.comment-post-content')).attr("rows", "1");
}
return false;
});
Это сценарий, чтобы опубликовать комментарий, а затем положить возвращенный json после div.latest-comment. Он отлично работает, но порядок комментариев от самого старого к последнему, когда мы идем вниз. Я отступил назад. Как я могу это сделать? Я попытался использовать prependTo вместо append, но затем комментарии не будут отображаться. Это html,
<div class="content-event">
<form method="post">
{% csrf_token %}
<textarea class="comment-post-content" name="comment-post-content" cols="55" rows="1" placeholder="Add a comment..."></textarea>
<input type="hidden" class="event-id" value="{{ event.id }}">
<input type="submit" class="u-post-button" value="Post comment" />
</form>
</div>
<div class="latest-comment"></div>
Вы уже упоминали, что вы пробовали prependTo()
, но вы попробовали prepend()
? Они работают по-разному, поэтому ваши комментарии, вероятно, исчезли.
Документация jQuery: http://api.jquery.com/prepend/