code: function(nodes, url, options) {
          if (Toolkit.isTouch) {
              return; // Flyouts shouldn't be usable on touch devices
          }
  
          this.nodes = $(nodes);
          options = this.setOptions(options);
          this.createWrapper();
  
          if (options.mode === 'click') {
              this.addEvents([
                  ['click', 'document', 'onShowToggle', '{selector}'],
                  ['resize', 'window', $.debounce(this.onHide.bind(this))]
              ]);
          } else {
              this.addEvents([
                  ['mouseenter', 'document', 'onShowToggle', '{selector}'],
                  ['mouseenter', 'document', 'onEnter', '{selector}'],
                  ['mouseleave', 'document', 'onLeave', '{selector}']
              ]);
          }
  
          this.initialize();
  
          // Load data from the URL
          if (url) {
              $.getJSON(url, function(response) {
                  this.load(response);
              }.bind(this));
          }
      }
docs: Initialize the flyout. A URL is required during construction.
  
  @param {jQuery} nodes
  @param {String} url
  @param {Object} [options]