diff --git a/README.txt b/README.txt
index 308b72d..7828875 100644
--- a/README.txt
+++ b/README.txt
@@ -27,12 +27,7 @@ listings of images or other content into a carousel.
 3) Change the "Style" of the view under "Basic settings" to "jCarousel".
    Configure the options for the carousel such as the animation speed and skin.
 
-4) For long lists within a Carousel, it may be useful to use AJAX to load
-   additional items into the carousel when clicking on the left or right arrows.
-   To do this, change the "Use AJAX" option to "Yes" within the view, under
-   "Basic Settings".
-
-5) Add the items you would like to include in the rotator under the "Fields"
+4) Add the items you would like to include in the rotator under the "Fields"
    section, and build out the rest of the view as you would normally. Note that
    the preview of the carousel within Views probably will not appear correctly
    because the necessary JavaScript and CSS is not loaded in the Views
diff --git a/includes/jcarousel.views.inc b/includes/jcarousel.views.inc
index be15a37..2c47409 100644
--- a/includes/jcarousel.views.inc
+++ b/includes/jcarousel.views.inc
@@ -33,7 +33,7 @@ function jcarousel_views_ajax() {
     $display_id = $_REQUEST['view_display_id'];
     $args = isset($_REQUEST['view_args']) && $_REQUEST['view_args'] !== '' ? explode('/', $_REQUEST['view_args']) : array();
     $path = isset($_REQUEST['view_path']) ? $_REQUEST['view_path'] : NULL;
-    $dom_id = isset($_REQUEST['view_dom_id']) ? intval($_REQUEST['view_dom_id']) : NULL;
+    $dom_id = isset($_REQUEST['jcarousel_dom_id']) ? intval($_REQUEST['jcarousel_dom_id']) : NULL;
     $first = isset($_REQUEST['first']) ? intval($_REQUEST['first']) : NULL;
     $last = isset($_REQUEST['last']) ? intval($_REQUEST['last']) : NULL;
     views_include('ajax');
@@ -46,6 +46,8 @@ function jcarousel_views_ajax() {
 
     // Load the view.
     if ($view = views_get_view($name)) {
+      $view->set_display($display_id);
+
       if ($view->access($display_id)) {
 
         // Fix 'q' for paging.
@@ -75,7 +77,7 @@ function jcarousel_views_ajax() {
         }
 
         // Reuse the same DOM id so it matches that in Drupal.settings.
-        $view->dom_id = $dom_id;
+        $view->jcarousel_dom_id = $dom_id;
 
         $errors = $view->validate();
         if ($errors === TRUE) {
@@ -101,13 +103,28 @@ function jcarousel_views_ajax() {
  * Adds necessary CSS and JS for Views-based carousels.
  */
 function jcarousel_views_add($view, $display_id = NULL) {
+  static $dom_counter = 0;
+
   if (!isset($display_id)) {
     $display_id = empty($view->current_display) ? 'default' : $view->current_display;
   }
 
   // Save the settings for the carousel, these will be used by the JavaScript.
   $options = array();
-  foreach ($view->style_options as $key => $option) {
+
+  // Keep track of each settings addition and give a unique ID. This can be
+  // useful when displaying the same view multiple times with different
+  // arguments (i.e. such as in a panel).
+  $options['view_options'] = array(
+    'view_args' => check_plain(implode('/', $view->args)),
+    'view_path' => check_plain($_GET['q']),
+    'view_base_path' => $view->get_path(),
+    'view_display_id' => $display_id,
+    'view_name' => $view->name,
+    'jcarousel_dom_id' => isset($view->jcarousel_dom_id) ? $view->jcarousel_dom_id : ++$dom_counter,
+  );
+
+  foreach ($view->style_plugin->options as $key => $option) {
     if ($option) {
       $options[$key] = is_numeric($option) ? (int) $option : $option;
     }
@@ -147,8 +164,14 @@ function jcarousel_views_add($view, $display_id = NULL) {
     $options['auto'] = 0;
   }
 
+  // Determine AJAX functionality in a backwards-compatible way. Versions prior
+  // to jCarousel 2.6 used the view-level "Use AJAX" option instead of a style
+  // setting. We check $view->style_options here intentionally instead of
+  // $view->style_plugin->options.
+  $use_ajax = isset($view->style_options['ajax']) ? $view->style_options['ajax'] : $view->use_ajax;
+
   // If using AJAX, adjust the view's positioning based on the current page.
-  if ($view->use_ajax) {
+  if ($use_ajax) {
     $options['ajax'] = TRUE;
     $options['size'] = $count;
 
@@ -193,22 +216,33 @@ function jcarousel_views_add($view, $display_id = NULL) {
     }
   }
 
-  $identifier = views_css_safe('jcarousel_view__' . $view->name . '__' . $display_id);
+  $identifier = views_css_safe('jcarousel_dom_' . $options['view_options']['jcarousel_dom_id']);
   return jcarousel_add($identifier, $options);
 }
 
+/**
+ * Preprocess function for jcarousel-view.tpl.php.
+ */
 function template_preprocess_jcarousel_view(&$variables) {
   $view = $variables['view'];
   $display_id = empty($view->current_display) ? 'default' : $view->current_display;
 
   // Add necessary JavaScript and CSS.
-  $settings = jcarousel_views_add($view, $display_id);
+  $attachments = jcarousel_views_add($view, $display_id);
+
+  // Find the JavaScript settings in the returned array.
+  foreach ($attachments['js'] as $data) {
+    if (isset($data['type']) && $data['type'] == 'setting') {
+      $settings = reset($data['data']['jcarousel']['carousels']);
+    }
+  }
 
   // Build the list of classes for the carousel.
   $options = $view->style_plugin->options;
   $variables['jcarousel_classes_array'] = array(
     'jcarousel',
     views_css_safe('jcarousel-view--' . $view->name . '--' . $display_id),
+    views_css_safe('jcarousel-dom-' . $settings['view_options']['jcarousel_dom_id']),
   );
   if (!empty($options['skin'])) {
     $variables['jcarousel_classes_array'][] = 'jcarousel-skin-' . $options['skin'];
diff --git a/includes/jcarousel_style_plugin.inc b/includes/jcarousel_style_plugin.inc
index cf7ae48..23fe069 100644
--- a/includes/jcarousel_style_plugin.inc
+++ b/includes/jcarousel_style_plugin.inc
@@ -24,6 +24,7 @@ class jcarousel_style_plugin extends views_plugin_style {
     $options['easing'] = array('default' => NULL);
     $options['vertical'] = array('default' => FALSE);
     $options['navigation'] = array('default' => '');
+    $options['ajax'] = array('default' => 0);
     return $options;
   }
 
@@ -100,6 +101,12 @@ class jcarousel_style_plugin extends views_plugin_style {
       '#default_value' => $this->options['navigation'],
       '#description' => t('Enable a clickable navigation list to jump straight to a given page.'),
     );
+    $form['ajax'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('AJAX load pages'),
+      '#default_value' => $this->options['ajax'],
+      '#description' => t('The number of items set in the pager settings will be preloaded. All additional pages will be loaded by AJAX as needed.'),
+    );
 
     $form['advanced'] = array(
       '#type' => 'fieldset',
diff --git a/js/jcarousel.js b/js/jcarousel.js
index 09ce5d2..c3e6d21 100644
--- a/js/jcarousel.js
+++ b/js/jcarousel.js
@@ -84,9 +84,9 @@ Drupal.jcarousel.ajaxLoadCallback = function(jcarousel, state) {
 
   // Find this view's settings in the Views AJAX settings.
   var settings;
-  $.each(Drupal.settings.views.ajaxViews, function(i, viewSettings) {
-    if ($view.is('.view-dom-id-' + viewSettings['view_dom_id'])) {
-      settings = viewSettings;
+  $.each(Drupal.settings.jcarousel.carousels, function(domID, carouselSettings) {
+    if ($list.is('.' + domID)) {
+      settings = carouselSettings['view_options'];
     }
   });
 
