         else
           @next() # load the next page
 
+    nextPageUrl: ->
+      if typeof @options.ajax.path == 'function'
+        @options.ajax.path $(@options.nextSelector)
+      else
+        $(@options.nextSelector).attr('href')
+
     # Load the next page
     next: ->
       if @options.state.done
         @_log "Loaded all pages"
       else
         @_loading()
+      url = @nextPageUrl()
 
-        $container = @$container
-        @requestAts.push +new Date # note when this request started
-        $.getScript(@$container.find(@options.navSelector).attr('href'))
-          .done(=> @_success($container))
-          .fail(=> @_error($container))
+      $container = @$container
+      $.ajax
+        url: url
+        dataType: @options.ajax.dataType
+        success: (data, textStatus, jqXHR) =>
+          @_success($container, data)
+
+        error: (xhr, options, error) =>
+          @_error($container, error)
 
     _loading: ->
       @options.state.loading = true
       @_log "Loading next page..."
       if typeof @options.loading is 'function'
-        @$container.find(@options.navSelector).each(@options.loading)
+        @options.loading $(@options.navSelector)
 
-    _success: ($container) ->
+    _success: ($container, newItems) ->
       # ignore any requests for elements that are no longer on the page
       return unless $.contains(document, $container[0])
       @options.state.loading = false
       @_log "New page loaded!"
       if typeof @options.success is 'function'
-        $container.find(@options.navSelector).each(@options.success)
+        @options.success @$container, newItems
 
-    _error: ($container) ->
+    _error: ($container, error) ->
       # ignore any requests for elements that are no longer on the page
       return unless $.contains(document, $container[0])
       @options.state.loading = false
       @_log "Error loading new page :("
       if typeof @options.error is 'function'
-        $container.find(@options.navSelector).each(@options.error)
+        @options.error @$container, error
 
     # Pause firing of events on scroll
     pause: ->

      @$container = $(container)
      @$table = $(container).find('table')
      @$context = $(@options.context)
      @instanceId = @constructor._nextId()
      @init()

    # Setup and bind to related events

    # Check the distance of the nav selector from the bottom of the window and fire
    # load event if close enough
    check: ->
      nav = $(@options.nextSelector)
      if nav.size() == 0
        @_log "No more pages to load"
      else
