2016-05-28 12 views
0

Ich muss einen Anfangszustand mit der Cursorposition einrichten, wenn der Benutzer eine Schaltfläche drückt, und diesen Status dann aktualisieren, wenn der Cursor bewegt. Seltsamerweise it seems difficult to get the cursor position outside an event.Führt mouseve Event Fire bei der Zuweisung

Ich habe den folgenden Code:

// Here is where I would like to set an initial state but don't know how to get the coordinates 

    thing.addEventListener('mousemove', function (e) { 
     // Here is where I update based on new e.clientX and e.clientY 
    }); 

Die oben scheint tatsächlich, ohne auch nur zu arbeiten, um den Ausgangszustand zu setzen. Es scheint, dass das mouse move-Ereignis ausgelöst wird, sobald ich es zugewiesen habe, obwohl es sich seit dem Klick möglicherweise nicht bewegt hat.

Weiß jemand, ob dies ein absichtliches Verhalten ist, auf das ich mich verlassen kann?

Antwort

0

Nach meinen Tests auf Windows 7, das mousemove Ereignis wird nicht automatisch auf den Button klicken in zwei Situationen ausgelöst:

  1. auf Firefox, wie in diesem Beitrag erwähnt: What to do if "mousemove" and "click" events fire simultaneously?

  2. Wenn Die Taste hat den Fokus und wird mit der Leertaste (in IE, Chrome und Firefox) gedrückt.

Wie Sie sagen, bekommen die mo Die Verwendung der Position außerhalb eines Ereignishandlers und insbesondere vor einer tatsächlichen Mausaktion scheint eine unmögliche Aufgabe zu sein.