code: function (options) {
              if (isObject(options)) {
                  this.options.drag.enabled = options.enabled === false? false: true;
                  this.setPerAction('drag', options);
                  this.setOnEvents('drag', options);
  
                  if (/^x$|^y$|^xy$/.test(options.axis)) {
                      this.options.drag.axis = options.axis;
                  }
                  else if (options.axis === null) {
                      delete this.options.drag.axis;
                  }
  
                  return this;
              }
  
              if (isBool(options)) {
                  this.options.drag.enabled = options;
  
                  return this;
              }
  
              return this.options.drag;
          }
docs: /*\
  Interactable.draggable
  [ method ]
  
  Gets or sets whether drag actions can be performed on the
  Interactable
  
  = (boolean) Indicates if this can be the target of drag events
  | var isDraggable = interact('ul li').draggable();
  or
  - options (boolean | object) #optional true/false or An object with event listeners to be fired on drag events (object makes the Interactable draggable)
  = (object) This Interactable
  | interact(element).draggable({
  |     onstart: function (event) {},
  |     onmove : function (event) {},
  |     onend  : function (event) {},
  |
  |     // the axis in which the first movement must be
  |     // for the drag sequence to start
  |     // 'xy' by default - any direction
  |     axis: 'x' || 'y' || 'xy',
  |
  |     // max number of drags that can happen concurrently
  |     // with elements of this Interactable. Infinity by default
  |     max: Infinity,
  |
  |     // max number of drags that can target the same element+Interactable
  |     // 1 by default
  |     maxPerElement: 2
  | });
  \