Когда-то давно, в прошлом веке, я тоже не видел разницы между обработчиком события и слушателем события.
Event listener — буквально так и переводится: "слушатель события". Т.е., когда мы назначаем элементу путём addEventListener некий обработчик, мы заставляем его слушать и реагировать на некоторое событие, возбуждается чем-то.
К чему я это… В таких неопределённых ситуациях всегда лучше делегировать слушателя, а иногда без этого просто не обойтись, особенно когда дело касается "мышиной возни" (MouseDown, MouseOver etc). Делегирование слушателя одному из предков, к тому же, имеет ещё одно неоспоримое преимущество: при динамическом изменении DOM, например при загрузке по ajax пресловутых элементов
.mobile-categories, не нужно следить за прикреплением им слушателей каждый раз.
document.body.addEventListener('click', (ev)=>{
if (ev.target.classList.includes('.mobile-categories')) {
// Тут что-то делаем с ev.target
}
});