Вам необходимо объявить datepickerEl
как глобальную переменную, так как она не достигает click область действия обработчика.
Еще одно изменение, которое я хотел бы сделать, это изменить , если метод условия closest
на parents
, так как элементы внутри DatePicker могут быть нажаты и все еще находятся внутри class="outer"
div
Кроме того, вам нужно изменить вызов события на e.stopPropagation()
(вы перепутали имя метода с e.preventDefault()
, я думаю, что он используется только для click , submit и т.д. событий по умолчанию поведение). * * тысяча двадцать-одна
Я полагаю, это то, что вы ищете:
var datepickerEl;
$(function() {
datepickerEl = $('.outer').datepicker();
$('html,body').click(function(e) {
e.stopPropagation();
if ( ! $(e.target).parents([datepickerEl]).length ) {
alert('What is going on');
}
});
});