Повесить на все окно или бади обработчик события и проверять чтоб таргет не был кнопкой дропдауна или самим дропдауном. Но в реальных условиях дропдаун состоит еще из ссылок и других блоков и все их проверять геморно. Кажется пока не придумали ничего лучше чем вместе с дропдауном помещать в дом прозрачный оверлей блок на все окно (position: fixed, width: 100vw, height: 100vh; top: 0, left: 0) и вешать обработчик события на него. Возможно таргет все же придеться проверять, но так его проще будет проверять. У дропдауна з-индекс должен быть выше чем у оверлея.