   showMore: (e) =>
     e.preventDefault()
 
-    return if e.currentTarget.classList.contains('js-disabled')
-
-    $link = $(e.currentTarget)
-    mode = $link.data('mode')
-
-    if mode == 'previous'
-      $refPost = $('.js-forum-post').first()
-      sort = 'id_desc'
-    else
-      $refPost = $('.js-forum-post').last()
-      sort = 'id_asc'
-
-    options =
-      skip_layout: 1
-      with_deleted: +@showDeleted()
-      sort: sort
-      cursor:
-        post_id: $refPost.data('post-id')
-
-    $link.addClass 'js-disabled'
-
-    $.get(window.canonicalUrl, options)
+    link = e.currentTarget
+
+    return if link.classList.contains('js-disabled')
+
+    link.classList.add 'js-disabled'
+
+    moreMeta = @moreMeta link
+
+    $.get(moreMeta.url)
     .done (data) =>
-      scrollReference = $refPost[0]
+      scrollReference = moreMeta.refPost
       scrollReferenceTop = scrollReference.getBoundingClientRect().top
 
-      if mode == 'previous'
-        $link.after data
+      if moreMeta.mode == 'previous'
+        link.insertAdjacentHTML 'afterend', data
         toRemoveStart = @maxPosts
         toRemoveEnd = @posts.length
       else
-        $link.before data
+        link.insertAdjacentHTML 'beforebegin', data
         toRemoveStart = 0
         toRemoveEnd = @posts.length - @maxPosts
 

    if lastPostLoaded
      $(@endPost()).find('.js-post-delete-toggle').css(display: '')


  refreshCounter: =>
    return if @_postsCounter.length == 0


    if @jumpTo $(e.target).find('[name="n"]').val()
      $.publish 'forum:topic:jumpTo'

  moreMeta: (link) =>
    mode = link.dataset.mode

    if mode == 'previous'
      refPost = @posts[0]
      sort = 'id_desc'
    else
      refPost = @endPost()
      sort = 'id_asc'

    query = $.param
      skip_layout: 1
      with_deleted: +@showDeleted()
      sort: sort
      cursor:
        post_id: refPost.dataset.postId

    url: "#{window.canonicalUrl}?#{query}"
    refPost: refPost
    mode: mode
