Закрыть блок Div при клике вне блока или на дате (datapicker)

На сайте календарь открывается по клику используется этот скрипт

$('.datepicker').on('click', function() {
  $('.datepicker').removeClass('close').addClass('open');
});

$('ЧТО СЮДА ВСТАВИТЬ?').on('click', function() {
  $('.datepicker').removeClass('open').addClass('close');
});

и CSS

.datepicker.close {
  position: absolute;
  overflow: hidden;
  max-height: 40px;
  bottom: 5px;
  animation-name: DivClose;
  animation-duration: 1s;
}

.datepicker.open {
  position: absolute;
  overflow: hidden;
  max-height: 260px;
  bottom: 5px;
  animation-name: DivOpen;
  animation-duration: 1s;
}

@keyframes DivOpen {
  from {
    max-height: 40px;
  }
  to {
    max-height: 260px;
  }
}

@keyframes DivClose {
  from {
    max-height: 260px;
  }
  to {
    max-height: 40px;
  }
}

Что надо добавить в код, чтобы календарь закрылся после выбора даты или после клика вне календаря?

<div id="datepicker" class="datepicker close">
  <input type="hidden" id="datepicker_value" value=""></div>


Ответы (1 шт):

Автор решения: Denis640Kb

    $('.datepicker').on('click', function() {
        $('.datepicker').removeClass('close').addClass('open');
    });
    jQuery(function($){
        $(document).mouseup(function (e){
            var div = $(".datepicker");
            if (!div.is(e.target)
                && div.has(e.target).length === 0) {
                $('.datepicker').removeClass('open').addClass('close');
            }
        });
    });
    .datepicker {
        width: 100px;
        height: 100px;
        background-color: blue;
    }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="datepicker">Пурум Пум Пум</div>

C изменениями:

    $('.datepicker').on('click', function () {
        $('.datepicker').removeClass('close').addClass('open');
    });
    jQuery(function ($) {
        $(document).mouseup(function (e) {
            var div = $(".datepicker");
            if (!div.is(e.target)
                && div.has(e.target).length === 0) {
                $('.datepicker').removeClass('open').addClass('close');
            }
        });
        $('a.ui-state-default').on('click', function () {
            $('.datepicker').removeClass('open').addClass('close');
            }
        )
    });
→ Ссылка