docs: function () {
              events.remove(this._element, 'all');
  
              if (!isString(this.selector)) {
                  events.remove(this, 'all');
                  if (this.options.styleCursor) {
                      this._element.style.cursor = '';
                  }
              }
              else {
                  // remove delegated events
                  for (var type in delegatedEvents) {
                      var delegated = delegatedEvents[type];
  
                      for (var i = 0; i < delegated.selectors.length; i++) {
                          if (delegated.selectors[i] === this.selector
                              && delegated.contexts[i] === this._context) {
  
                              delegated.selectors.splice(i, 1);
                              delegated.contexts .splice(i, 1);
                              delegated.listeners.splice(i, 1);
  
                              // remove the arrays if they are empty
                              if (!delegated.selectors.length) {
                                  delegatedEvents[type] = null;
                              }
                          }
  
                          events.remove(this._context, type, delegateListener);
                          events.remove(this._context, type, delegateUseCapture, true);
  
                          break;
                      }
                  }
              }
  
              this.dropzone(false);
  
              interactables.splice(indexOf(interactables, this), 1);
  
              return interact;
          }