Ну что блджад, выпили кровь, ECMAть их, пейсателей js.
top_menu[i].addEventListener(sub_menu.dataset.event, show[sub_menu.dataset.event], false);
Ну и как обычно зл....чий геморр с this'ами. Биндится элемент и ивент. Пока что сделал харкор на вызов собственных методов объекта по имени его отчеству.
Я подумал гребись оно конем и забиндил родителя одним событием на маусеовер. Оказалось хоть клик и начинается с овер, но х-то его получишь из Event'а.
Там система такая. Это обычное меню пункты которого можно одним ключом в дата-сете сделать либо кликабельные. либо ховерные. Потому что меню одно на все барахло, а там часть сущностей имеет заголовок, а часть не имеет. То есть либо пункт топ-меню ведет на ресурс, либо тупо открывает другие пункты.