У метода addEventListener есть параметр
priority, который поможет в вашей ситуации. Выставляйте слушателям нужные приоритеты, а при срабатывании листенера с наивысшим приоритетом, отключайте распространение события через
e.stopImmediatePropagation().
Или просто удаляйте все предыдущие слушатели.