@@ -2148,13 +2148,26 @@ function RemoteFunctions(config = {}) {
21482148 svgElement = svgElement . parentElement ;
21492149 }
21502150 if ( svgElement && svgElement . tagName . toLowerCase ( ) === 'svg' ) {
2151- svgElement . addEventListener ( "mousedown" , ( event ) => { onDragMouseDown ( event , svgElement ) ; } ) ;
2151+ if ( svgElement . _dragMouseDownHandler ) {
2152+ svgElement . removeEventListener ( "mousedown" , svgElement . _dragMouseDownHandler ) ;
2153+ }
2154+ svgElement . _dragMouseDownHandler = ( event ) => { onDragMouseDown ( event , svgElement ) ; } ;
2155+ svgElement . addEventListener ( "mousedown" , svgElement . _dragMouseDownHandler ) ;
21522156 }
21532157
21542158 } else { // for normal elements
2159+ if ( this . element . _dragStartHandler ) {
2160+ this . element . removeEventListener ( "dragstart" , this . element . _dragStartHandler ) ;
2161+ }
2162+ if ( this . element . _dragEndHandler ) {
2163+ this . element . removeEventListener ( "dragend" , this . element . _dragEndHandler ) ;
2164+ }
2165+
21552166 this . element . setAttribute ( "draggable" , "true" ) ;
2156- this . element . addEventListener ( "dragstart" , ( event ) => { onDragStart ( event , this . element ) ; } ) ;
2157- this . element . addEventListener ( "dragend" , ( event ) => { onDragEnd ( event , this . element ) ; } ) ;
2167+ this . element . _dragStartHandler = ( event ) => { onDragStart ( event , this . element ) ; } ;
2168+ this . element . _dragEndHandler = ( event ) => { onDragEnd ( event , this . element ) ; } ;
2169+ this . element . addEventListener ( "dragstart" , this . element . _dragStartHandler ) ;
2170+ this . element . addEventListener ( "dragend" , this . element . _dragEndHandler ) ;
21582171 }
21592172 } ,
21602173
0 commit comments