Credo di conoscere il tuo problema. Stai cercando di interrogare la posizione del mouse a livello di programmazione. Forse hai un codice come questo:
$(document).one('mousemove.myModule', function (e) {
// e.pageY and e.pageX is undefined.
console.log('e.pageY: ' + e.pageY + ', e.pageX: ' + e.pageX); }
).trigger('mousemove.myModule');
Quindi hai assolutamente ragione. Le proprietà pageY e pageX sull'oggetto evento non saranno definite. In realtà, c'è un sacco di cose nell'oggetto evento che non ci sarà, non solo .pageY
e .pageX
. Potrebbe esserci qualche bug in jQuery. In ogni caso, non associare la chiamata per attivare e attivando invece l'evento su $ (finestra). Non chiedetemi perché funziona anche se ma per me lo ha fatto:
$(document).one('mousemove.myModule', function (e) {
console.log('e.pageY: ' + e.pageY + ', e.pageX: ' + e.pageX); });
// Now e.pageY and e.pageX will be defined!
$(window).trigger('mousemove.myModule');
fonte
2012-10-30 20:20:02
È per test? – airportyh
Una volta che si poteva fare è salvare i dati dell'evento dall'ultimo evento reale mousemove, quindi quando lo si attiva riutilizzarlo a livello di codice se non esistono nuovi dati di eventi. Se i veri eventi Mousemove non vengono attivati, significa che il mouse non si è spostato, quindi i dati dell'evento dall'ultimo vero mousemove dovrebbero avere ancora la posizione corrente. – Mahn