Clicking in a menu's margins selects the parent menu item. This is intentional, but perhaps a controversial choice. Alternative are having no selected item or path, or a selected path ending in no actual selected item.
Menu system sets no style or layout - rules only provided to show capabilities.
Dotted lines indicate (externally) captured hover/click events on list items.
Console will report generated and (externally) captured activate/select events.
CSS rules show active/selected paths as well.
If TJMenu.debug([bool]) = true, animations will be slowed and current
animation states indicated by menu background colors (white = static,
orange = waiting to open, yellow = opening, purple = waiting to close,
red = closing).
To simulate touch-screen testing (generate DOM events like a mobile browser)
run these functions in the console:
- clickBehindHover()
- hover+click inside hover menu
- clickRandom()
- hover+click any menu item (20% chance to repeat item)
- clickRandomNoHover()
- only click any menu item (20% chance to repeat item)
- clickHoverPath()
- see below
The last function will execute a sequence of delayed hover+clicks that
depend on menus with no click handler staying open for clicks without hover.
Following links cannot be tested this way (simulated clicks won't navigate).
Click sequence is:
Clicked Tree Index Effective Action Selected Path Result
3rd select hover
3rd -> 2nd select-child hover->click
3rd -> 3rd select-sibling hover->hover
3rd -> 3rd -> 2nd select-child hover->hover->click
3rd -> 3rd select-parent hover->hover
3rd -> 3rd -> 2nd select-child hover->hover->click
3rd -> 3rd -> 2nd select-parent hover->hover
3rd -> 2nd select-sibling hover->click