function handler1(){
$("#navi_touch").css("visibility","visible");
$("#navitouchbutton").css("background","red");
$("#navitouchbutton").one("click",handler2);
}
function handler2(){
$("#navi_touch").css("visibility","hidden");
$("#navitouchbutton").css("background","#000");
$("#navitouchbutton").one("click",handler1);
}
$("#navitouchbutton").one("click", handler1);
Сейчас единственный способ свернуть меню - нажать кнопку #navitouchbutton. Как я могу свернуть это меню (скрывая #navi_touch), когда пользователь щелкает где-нибудь вне #navi_touch?
Один из способов сделать это - привязать событие клика к документу, а затем проверить, является ли элемент, на который вы нажали, дочерний элемент #nav_touch.
Образец обработчика:
$(document).on('click', function(e){
if( $(e.target).parents('#navi_touch').length ) return;
$("#navi_touch").css("visibility", "hidden");
$("#navitouchbutton").css("background", "#000");
});
Зарегистрировать обработчик объекта документа
function handler1() {
$("#navi_touch").css("visibility", "visible");
$("#navitouchbutton").css("background", "red");
$(document).one("click", handler2);
}
function handler2() {
$("#navi_touch").css("visibility", "hidden");
$("#navitouchbutton").css("background", "#000");
$("#navitouchbutton").one("click", handler1);
}
$("#navitouchbutton").one("click", handler1);