diff --git a/core/modules/outside_in/js/offcanvas.js b/core/modules/outside_in/js/offcanvas.js
index ffcb5e8..bed5522 100644
--- a/core/modules/outside_in/js/offcanvas.js
+++ b/core/modules/outside_in/js/offcanvas.js
@@ -93,45 +93,47 @@
     }
   }
 
-  $(window).on({
-    'dialog:aftercreate': function (event, dialog, $element, settings) {
-      if ($element.is('#drupal-offcanvas')) {
-        var eventData = {settings: settings, $element: $element};
-        $('.ui-dialog-offcanvas, .ui-dialog-offcanvas .ui-dialog-titlebar').toggleClass('ui-dialog-empty-title', !settings.title);
-
-        $element
-          .on('dialogresize.outsidein', eventData, debounce(bodyPadding, 100))
-          .on('dialogContentResize.outsidein', eventData, handleDialogResize)
-          .trigger('dialogresize.outsidein');
-
-        $element.dialog('widget').attr('data-offset-' + edge, '');
-
-        $(window)
-          .on('resize.outsidein scroll.outsidein', eventData, debounce(resetSize, 100))
-          .trigger('resize.outsidein');
+  $(document).ready(function () {
+    $(window).on({
+      'dialog:aftercreate': function (event, dialog, $element, settings) {
+        if ($element.is('#drupal-offcanvas')) {
+          var eventData = {settings: settings, $element: $element};
+          $('.ui-dialog-offcanvas, .ui-dialog-offcanvas .ui-dialog-titlebar').toggleClass('ui-dialog-empty-title', !settings.title);
+
+          $element
+            .on('dialogresize.outsidein', eventData, debounce(bodyPadding, 100))
+            .on('dialogContentResize.outsidein', eventData, handleDialogResize)
+            .trigger('dialogresize.outsidein');
+
+          $element.dialog('widget').attr('data-offset-' + edge, '');
+
+          $(window)
+            .on('resize.outsidein scroll.outsidein', eventData, debounce(resetSize, 100))
+            .trigger('resize.outsidein');
+        }
+      },
+      'dialog:beforecreate': function (event, dialog, $element, settings) {
+        if ($element.is('#drupal-offcanvas')) {
+          // @see http://api.jqueryui.com/position/
+          settings.position = {
+            my: 'left top',
+            at: edge + ' top',
+            of: window
+          };
+          settings.dialogClass = 'ui-dialog-offcanvas';
+          // Applies initial height to dialog based on window height.
+          // See http://api.jqueryui.com/dialog for all dialog options.
+          settings.height = $(window).height();
+        }
+      },
+      'dialog:beforeclose': function (event, dialog, $element) {
+        if ($element.is('#drupal-offcanvas')) {
+          $(document).off('.outsidein');
+          $(window).off('.outsidein');
+          $mainCanvasWrapper.css('padding-' + edge, 0);
+        }
       }
-    },
-    'dialog:beforecreate': function (event, dialog, $element, settings) {
-      if ($element.is('#drupal-offcanvas')) {
-        // @see http://api.jqueryui.com/position/
-        settings.position = {
-          my: 'left top',
-          at: edge + ' top',
-          of: window
-        };
-        settings.dialogClass = 'ui-dialog-offcanvas';
-        // Applies initial height to dialog based on window height.
-        // See http://api.jqueryui.com/dialog for all dialog options.
-        settings.height = $(window).height();
-      }
-    },
-    'dialog:beforeclose': function (event, dialog, $element) {
-      if ($element.is('#drupal-offcanvas')) {
-        $(document).off('.outsidein');
-        $(window).off('.outsidein');
-        $mainCanvasWrapper.css('padding-' + edge, 0);
-      }
-    }
+    });
   });
 
 })(jQuery, Drupal, Drupal.debounce, Drupal.displace);
