Frage Performance-Problem bei grabbable

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Aaron3219

Senior HTML'ler
6 Oktober 2015
1.148
237
63
19
Hey liebes Forum,

ich habe da mal ein Problem. Im Moment versuche ich eine grabbable-Script zu schreiben. Mir ist bewusst, das JQuery-UI existiert, ich möchte es dennoch selber machen.
Hier die Versuchsumgebung:
https://jsfiddle.net/Aaron3219/zb99xdsu/

Wenn man nun das div nimmt, dann 10-20 Sekunden hin und her bewegt und dann loslässt, wird beim erneuten Grabben (manchmal) ein 2. Klon erstellt und man kann das div nur bewegen, wenn man die Maus loslässt (was ja eigentlich nicht sein soll).

Mein Gedanke ist, das jedes mal ein neues Event gefeuert wird, ich weiß aber nicht, was ich dann verändern muss um das zu verhindern.
 

basti1012

Senior HTML'ler
26 November 2017
1.523
167
63
Minden
sebastian1012.bplaced.net
Wenn man schnell hintereinander die Maustaste drückt ,und dann die Maus bewegt,dann kommt der Effekt auch ,sogar zimlich oft.Wenn man nur schnell drückt ,und die Maus nicht bewegt ,kommt der Effekt nicht.Vieleicht hilft das bei der Fehler suche.Habe zwar auch schon getestet,aber habe es nur hinbekommen das der Fehler seltener kam,aber weg auch nicht .
 

Aaron3219

Senior HTML'ler
6 Oktober 2015
1.148
237
63
19
Wenn man schnell hintereinander die Maustaste drückt ,und dann die Maus bewegt,dann kommt der Effekt auch ,sogar zimlich oft.Wenn man nur schnell drückt ,und die Maus nicht bewegt ,kommt der Effekt nicht.Vieleicht hilft das bei der Fehler suche.Habe zwar auch schon getestet,aber habe es nur hinbekommen das der Fehler seltener kam,aber weg auch nicht .
Ich habe mir mal deinen Code aus deinem gelöschten Beitrag angeschaut (https://jsfiddle.net/basti1012/zb99xdsu/7/), aber ich kann keine Verbesserung feststellen. Würde für mich auch keinen Sinn machen.
 

Aaron3219

Senior HTML'ler
6 Oktober 2015
1.148
237
63
19
Nun ja,
nach einiger Zeit konnte ich das Problem beheben.
Es war ein leicht zu übersehender Fehler:
Code:
$(document).bind('mousemove', function () {
      var xKoor = event.pageX;
      var YKoor = event.pageY;       

      elem.css({left: xKoor - xelemKoor + "px", top: YKoor - YelemKoor + "px"});

    });
Was ist fehlt ist das "return false;". So wurde aus dem alten Fiddle nun das neue, voll funktionierende:
https://jsfiddle.net/Aaron3219/zb99xdsu/
 
Werbung: