code: function() {
              // Reset some things
              this.helpers = [];
              this.helperTargets = [];
              this.helperPositions = [];
              this.lastMouseX = this.lastMouseY = null;
  
              // Capture the target item's width/height
              this.targetItemWidth = this.$targetItem.outerWidth();
              this.targetItemHeight = this.$targetItem.outerHeight();
  
              // Save the draggee's display style (block/table-row) so we can re-apply it later
              this.draggeeDisplay = this.$targetItem.css('display');
  
              // Set the $draggee
              this.setDraggee(this.findDraggee());
  
              // Create an array of all the other items
              this.otherItems = [];
  
              for (var i = 0; i < this.$items.length; i++) {
                  var item = this.$items[i];
  
                  if ($.inArray(item, this.$draggee) === -1) {
                      this.otherItems.push(item);
                  }
              }
  
              this.totalOtherItems = this.otherItems.length;
  
              // Keep the helpers following the cursor, with a little lag to smooth it out
              if (!this.updateHelperPosProxy) {
                  this.updateHelperPosProxy = $.proxy(this, '_updateHelperPos');
              }
  
              this.helperLagIncrement = this.helpers.length === 1 ? 0 : this.settings.helperLagIncrementDividend / (this.helpers.length - 1);
              this.updateHelperPosFrame = Garnish.requestAnimationFrame(this.updateHelperPosProxy);
  
              this.base();
          }
docs: Start Dragging