Просмотрел с десяток вариантов и у всех один и тот же кривой js.
Основную проблему поясню на
популярном примере - скрипт не учитывает размеры экрана и если расположить меню по правому краю и открыть подпункт, то он окажется за пределами экрана.
P.S. На том же jQuery UI подобных проблем нет, но внешний вид не фонтан, т.ч.в крайнем случае займусь "i have bs4 navbar", "i have jquery ui menu" ... "mmm нихрена не эплпен"...