@@ -72,11 +72,7 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
7272 this . _drag = this . _drag . bind ( this ) ;
7373 this . _dragEnd = this . _dragEnd . bind ( this ) ;
7474 this . _dragFollow = this . _dragFollow . bind ( this ) ;
75-
76- this . el . draggable = true ;
77- this . el . classList . add ( 'ui-draggable' ) ;
78- this . el . addEventListener ( 'mousedown' , this . _mouseDown ) ;
79- this . el . addEventListener ( 'dragstart' , this . _dragStart ) ;
75+ this . enable ( ) ;
8076 }
8177
8278 public on ( event : 'drag' | 'dragstart' | 'dragstop' , callback : ( event : DragEvent ) => void ) : void {
@@ -91,12 +87,18 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
9187 super . enable ( ) ;
9288 this . el . draggable = true ;
9389 this . el . classList . remove ( 'ui-draggable-disabled' ) ;
90+ this . el . classList . add ( 'ui-draggable' ) ;
91+ this . el . addEventListener ( 'mousedown' , this . _mouseDown ) ;
92+ this . el . addEventListener ( 'dragstart' , this . _dragStart ) ;
9493 }
9594
96- public disable ( ) : void {
95+ public disable ( forDestroy = false ) : void {
9796 super . disable ( ) ;
98- this . el . draggable = false ;
99- this . el . classList . add ( 'ui-draggable-disabled' ) ;
97+ this . el . removeAttribute ( 'draggable' ) ;
98+ this . el . classList . remove ( 'ui-draggable' ) ;
99+ if ( ! forDestroy ) this . el . classList . add ( 'ui-draggable-disabled' ) ;
100+ this . el . removeEventListener ( 'mousedown' , this . _mouseDown ) ;
101+ this . el . removeEventListener ( 'dragstart' , this . _dragStart ) ;
100102 }
101103
102104 public destroy ( ) : void {
@@ -106,10 +108,7 @@ export class DDDraggable extends DDBaseImplement implements HTMLElementExtendOpt
106108 // destroyed.
107109 this . _dragEnd ( { } as DragEvent ) ;
108110 }
109- this . el . draggable = false ;
110- this . el . classList . remove ( 'ui-draggable' ) ;
111- this . el . removeEventListener ( 'mousedown' , this . _mouseDown ) ;
112- this . el . removeEventListener ( 'dragstart' , this . _dragStart ) ;
111+ this . disable ( true ) ;
113112 delete this . el ;
114113 delete this . helper ;
115114 delete this . option ;
0 commit comments