Как написать скрипт на закрытие выпадающего элемента по клику в любое место экрана?

Всем доброго времени суток!
Суть вопроса-проблемы
Имеется самописная кнопка заказа обратного звонка на сайте.
На десктопной версии сайта реализовал открытие самой формы (по нажатию на иконку трубки) через скрипт с анимацией выплывания, а закрытие через простой скрипт, который приведу ниже (скрипт скрывает элемент при нажатии в любую точку экрана, кроме самого элемента).
НО! На мобильных девайсах работает только скрипт появления элемента. Клик в любое место на экране не приводит к скрытию элемента.
Как исправить данную ситуацию можно?
Скрипт открытия и скрытия элемента:
function showcallbackform (objName) {
    if ( $(objName).css('display') == 'none' ) {
        $(objName).animate({height: 'show'}, 200);
    } else {
        $(objName).animate({height: 'hide'}, 200);
    }
};

jQuery(function($){
	$(document).mouseup(function (e){
		var div = $("#callback-form");
		if (!div.is(e.target)
		    && div.has(e.target).length === 0) {
			div.hide();
		}
	});
});


P.S.: Как вариант, можно сделать еще один всплывающий блок (прозрачный) на весь экран и написать к нему скрипт, который будет закрывать его и сам элемент формы обратного звонка. Но мне кажется, что есть более простой вариант.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
@Pertinax Автор вопроса
Нашел ответ на зарубежном форуме!
Проблема была именно в трекинге касаний на мобильных устройствах. Скрипт на закрытие нужно заменить на следующий:
jQuery(function($){
    $(document).bind( "mouseup touchend", function(e){
        var div = $("#callback-form");
        if (!div.is(e.target)
            && div.has(e.target).length === 0) {
            div.hide();
        }
    });
});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AskMy
@AskMy
иногда решаю задачки и задаю глупые вопросы
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы