In an arbitrary JavaScript function, I wish to determine the upstream event.
The event listener function did not pass the event do the current function. As far as I know, window.event
is not WC3 and not available.
function listener(e) { subfunc(e.target); } function subfunc( element) { // here I wish to know which if any event responsible for me being called var event = ?; switch( event.type ) { ... } }
How does function subfunc()
determine the current event?
(Apologize if question asked before - seems it must have been - but cannot track it down.)
In an arbitrary JavaScript function, I wish to determine the upstream event.
The event listener function did not pass the event do the current function. As far as I know, window.event
is not WC3 and not available.
function listener(e) { subfunc(e.target); } function subfunc( element) { // here I wish to know which if any event responsible for me being called var event = ?; switch( event.type ) { ... } }
How does function subfunc()
determine the current event?
(Apologize if question asked before - seems it must have been - but cannot track it down.)
e
to subfunc
, not only e.target
. Or you set window.event = e;
inside listener
, but passing the event object seems to be a cleaner approach to me.
– Felix Kling
Commented
Sep 23, 2011 at 9:36
window.event
, seems dangerous to try to maintain that state space.
– cc young
Commented
Sep 23, 2011 at 9:42
this
. playing with code psychology now.
– cc young
Commented
Sep 23, 2011 at 9:54
You can do:
function listener(e) { subfunc.call(this, e); }
function subfunc( e ) {
var element = this; //<- 'this' points to your element, 'e.type' is event type
switch( e.type ) { ... }
}
Also other way:
function listener(e) { subfunc.call(e, e.target); }
function subfunc( element ) {
var event = this; //<- 'this' points to your event object
switch( event.type ) { ... }
}
That's not possible. There's only one property which can be accessed through another, reliable way: event.target
= this
(Provided that the function is called from within the scope of the event listener).
The event object should be passed to subfunc
.