Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2015, 12:31
byM byM вне форума
Новичок на форуме
Отправить личное сообщение для byM Посмотреть профиль Найти все сообщения от byM
 
Регистрация: 05.08.2015
Сообщений: 4

Не закрывается меню
Добрый день. У меня есть меню, которое открывается и закрывается по клику на одну кнопку. И также может закрыться если нажать не в блок выдвинутого меню.
Но проблема вот в чем, когда я нажимаю на блок который выдвинулся, и после него нажимаю не копку закрыть, а просто жму в любое место то меню уже назад не задвигается, это как то не удобно. Подскажите как мне исправить это? Вот песочницаhttp://jsfiddle.net/342swr8m/5/

P.s Строго за код не судите, я в этом деле новичок. Заранее спасибо за помощь =)
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2015, 12:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Закрытие по клику вне блока
byM,
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title> - jsFiddle demo</title>
  <script type='text/javascript' src='https://code.jquery.com/jquery-1.9.1.js'></script>
  <style type='text/css'>
    .sidebar_open-icons {
    background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
    border: medium none;
    border-radius: 50%;
    cursor: pointer;
    float: left;
    height: 44px;
    text-align: center;
    width: 44px;
    cursor: pointer;
}
.sidebar_open-icons:hover {
    background-color: #f4f4f4;
}
#navbar_open-left {
    background-color: #eee;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.1) inset, -1px -1px 0 0 rgba(0, 0, 0, 0.07) inset;
    display: inline;
    height: 200px;
    left: -50%;
    min-width: 260px;
    position: absolute;
    top: 64px;
    z-index: 2;
    transition: left .5s;
}
#navbar_open-left.visible {
    left: 0;
}
  </style>
<script>
$(function () {
    var keyOpen = $('#navbar_open'),
        navBar = $('#navbar_open-left');
    keyOpen.click(function (e) {
        navBar.toggleClass("visible")
        e.preventDefault()
    });
    $(document).click(function (e) {
        if (!$(e.target).closest("#navbar_open, #navbar_open-left").length ) navBar.removeClass("visible")
    });


});
</script>


</head>
<body>
  <div class="sidebar_open-wrap">
    <div class="sidebar_open-icons" id="navbar_open">=) click me</div>
    <div class="sidebar-left" id="navbar_open-left"></div>
</div>
</body>
</html>

Последний раз редактировалось рони, 07.05.2021 в 23:03.
Ответить с цитированием
  #3 (permalink)  
Старый 05.08.2015, 12:52
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

вы же сами написали:
$(document).click(function (e) {
        if ((e.target || e.srcElement) !== keyOpen[0] && !flag) navBar.removeClass("visible")
    });


и

navBar[0].onclick=function(e){
            flag=!0;
        }


т.е. после нажатия на navBar переменная flag становится равной true и условие:
(e.target || e.srcElement) !== keyOpen[0] && !flag

не выпоняется
Ответить с цитированием
  #4 (permalink)  
Старый 05.08.2015, 13:12
byM byM вне форума
Новичок на форуме
Отправить личное сообщение для byM Посмотреть профиль Найти все сообщения от byM
 
Регистрация: 05.08.2015
Сообщений: 4

Спасибо за помощь =)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Меню на JQuery раскрывается и закрывается несколько раз Sqaier jQuery 3 21.06.2015 08:15
Бесконечноуровневое меню на CSS ruslan_mart Ваши сайты и скрипты 5 12.01.2015 20:59
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36
Ява меню закрывается при переходе на страницу. Avenger Общие вопросы Javascript 3 29.06.2011 01:08