Извините, а вы для каких браузеров это делаете (по каким книжкам js изучаете)? Вряд ли нужно сейчас писать в расчете на ИЕ8 и более ранние.
Сейчас не нужны никакие e.srcElement. Только e.target
И есть функция elt = element.closest(selectors)
см
https://developer.mozilla.org/ru/doc...lement/closest
Есть еще функция matches
https://developer.mozilla.org/ru/doc...lement/matches
Поэтому
el.nodeName == 'LI' && el.hasAttribute('data-m1vpopupmenuid')
записывается, как
el.matches('li[data-m1vpopupmenuid]')
А весь цикл, как
el = e.target.closest('li[data-m1vpopupmenuid]') // 'элемент-предок, если есть такой, null - если нет