Known issues:

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