code: function () {
              var results = this.results,
                  more = results.find("li.select2-more-results"),
                  below, // pixels the element is below the scroll fold, below==0 is when the element is starting to be visible
                  page = this.resultsPage + 1,
                  self=this,
                  term=this.search.val(),
                  context=this.context;
  
              if (more.length === 0) return;
              below = more.offset().top - results.offset().top - results.height();
  
              if (below <= this.opts.loadMorePadding) {
                  more.addClass("select2-active");
                  this.opts.query({
                          element: this.opts.element,
                          term: term,
                          page: page,
                          context: context,
                          matcher: this.opts.matcher,
                          callback: this.bind(function (data) {
  
                      // ignore a response if the select2 has been closed before it was received
                      if (!self.opened()) return;
  
  
                      self.opts.populateResults.call(this, results, data.results, {term: term, page: page, context:context});
                      self.postprocessResults(data, false, false);
  
                      if (data.more===true) {
                          more.detach().appendTo(results).text(evaluate(self.opts.formatLoadMore, self.opts.element, page+1));
                          window.setTimeout(function() { self.loadMoreIfNeeded(); }, 10);
                      } else {
                          more.remove();
                      }
                      self.positionDropdown();
                      self.resultsPage = page;
                      self.context = data.context;
                      this.opts.element.trigger({ type: "select2-loaded", items: data });
                  })});
              }
          }
docs: abstract