The "global" event
variable was initially implemented by Microsoft for Internet Explorer and has been supported since in many popular user agents, without being formally specified by any actual authority before WHATWG did so retroactively in the name of backwards compatibility, defining it as the "current" event, with an attached cautionary note:
Web developers are strongly encouraged to instead rely on the Event object passed to event listeners, as that will result in more portable code. This attribute is not available in workers or worklets, and is inaccurate for events dispatched in shadow trees.
So, the idiomatic solution to the broad class of problems your use case belongs to is to attach an event listener on the element or its ancestor, typically with the addEventListener
function, and be using the event object that is explicitly passed to the listener.
As for your concrete use case, assuming figure
below refers to your well, figure
element, the event listener (zoom
) may be attached thus::
figure.addEventListener("mousemove", zoom);
Since your zoom
function already assumes the single argument it is passed is the mouse move event, it will continue working as an event listener without needing changes -- it will be called with the event of interest passed as sole argument every time the mouse moves.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…