Oops... that list of focusable elements is at http://www.w3schools.com/jsref/jsref_onfocus.asp
On Dec 28, 11:29 pm, Michal <[email protected]> wrote: > Hi, > > I'm trying to make a drop-down menu that is accessible both by the > mouse and the keyboard (say via the tab-key). Ssay for element "X", I > am trying to make an event that fires when either: > > - 'mouseenter' of X is fired, or > - any element within X gains focus when previously none within X had > focus. > > And the "opposite" event that fires when either > > - 'mouseleave' of X fires > - an element of X loses focus when previously one had focus > > In a way I am trying to merge the mouseenter/mouseleave and focus > events. I have made an attempt, with a demo > athttp://yetagain.net/sandbox/mousefocus/ > , with the code of the events > athttp://yetagain.net/sandbox/mousefocus/mousefocus.js > > However, the code is a bit of a hack!! > > - It assumes the only elements that can have focus are links. I guess > this can be fixed by an exhaustive list: I've found one > athttp://yetagain.net/sandbox/mousefocus/mousefocus.js. > > - On add of a event listener, it attaches 'focus' event listeners to > *every* focusable element on the page (so far only links though), and > fires off the appropriate event, depending on whether focus is inside > or outside the element in question. I tried to use 'blur' events, but > I discovered that on tab-navigation of links, 'blur' is fired before > 'focus' of the next link: and this any code that responds to 'blur' > cannot work out where focus is. > > - It fires off both events even if only one has ever been added (I'm > not sure if this is an issue). > > If anyone has any suggestions on how to improve the code, and make it > less hack-ish I would be grateful. I've not really done anything this > advanced with events before, so I don't really know what I'm doing. > > Michal.
