Спасибо всем, кто смотрел на это, но я сам нашел ответ.
Проблема возникала только тогда, когда фокус фокусировался на нескольких конкретных элементах управления.Эти элементы управления имели события onblur, которые также устанавливают класс раскрывающегося списка.
Я предполагал, что эти события onblur будут выполняться до onfocus / onfocusin, но, похоже, это не так.Затем события onblur, по-видимому, закрывают раскрывающийся список при применении изменения класса.
В любом случае, теперь я проверяю, какой элемент управления фокусируется на этих событиях onblur, и, если это раскрывающийся список, я не запускаюосновная логика внутри onblur и все теперь работает как положено.