anchor.diff:                      success: function (data, textStatus, jqXHR) {
                           var score = $('#comment-' + id + ' .comment-score').first();
                           score.text(parseInt(score.text()) + delta);
  +                        if (typeof on_success !== 'undefined')
  +                            on_success();
                       },
                       error: function (data, textStatus, jqXHR) {
                           alert('Could not vote: ' + data.responseText);
  
positive.code:                 });
              }
  
              window.comment_upvote = function (id) {
                  ajax_vote('{% url "comment_upvote" %}', id, 1);
              };
  
              window.comment_downvote = function (id) {
                  ajax_vote('{% url "comment_downvote" %}', id, -1);
              };
  
              $('.comments').find('a.edit-link').featherlight({
  
negative.code:                 }, 500);
              };
  
              function ajax_vote(url, id, delta, on_success) {
                  return $.ajax({
                      url: url,
                      type: 'POST',
  