Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2014, 17:43
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Меню не открывается с первого клика
Всем привет! Вот сам сайтег - http://thisissite.esy.es/
И мой быдлокод. Когда-нибудь я научусь писать нормально.
На главной странице менюшки открываются с первого клика при нажатии на кнопки и на ссылки якоря.
А вот на странице http://thisissite.esy.es/usadba.html с двойного. Что тут можно дошаманить в этом шаманстве?
$(function (){
   var flag=0;
   $(".right-click").click(function(){
     if(flag==0){;
        $(".right-menu").animate({width: '60px'}, 300);
        $(".moduletable-menu > ul > li > a").css('visibility', 'hidden');
        $(".right-bot").hide();
        flag=1;
     }
    else{
        $(".right-menu").animate({width: '200px'}, 300);
        $(".moduletable-menu > ul > li > a").css('visibility', 'visible');
        $(".right-bot").show();
        flag=0;
     }
  });


if(location.pathname != "/") {
   $(".right-click2").click(function(){

     if(flag==0){;
        $(".right-wrapper").animate({width: '50px'}, 300);
        $(".right-wrapper .item-page").hide();
        $('.scroller__bar-wrapper').hide();
        $('.moduletable-menu li ul').show();
        flag=1;
     }
    else{
        $(".right-wrapper").animate({width: '504px'}, 300);
        $(".right-wrapper .item-page").show();
        $('.scroller__bar-wrapper').show();
        $('.moduletable-menu li ul').hide();
        flag=0;
     }
  });

 }

  if(location.pathname == "/") {
    $('.right-wrapper').addClass('width50')
    $('.scroller__bar-wrapper').hide();;
    $('.item-page').css('display', 'none');
    $('.moduletable-menu li ul').show();


     $(".right-click2").click(function(){

       if(flag==0){
          $(".right-wrapper").animate({width: '504px'}, 300);
          $(".right-wrapper .item-page").show();
          $('.moduletable-menu li ul').hide();
          $('.scroller__bar-wrapper').show();
          flag=1;
       }
      else{
          $(".right-wrapper").animate({width: '50px'}, 300);
          $(".right-wrapper .item-page").hide();
          $('.moduletable-menu li ul').show();
          $('.scroller__bar-wrapper').hide();
          flag=0;
       }
    });
   }

   $(".moduletable-menu li li a").click(function(){

   if(flag==0){;
      $(".right-wrapper").animate({width: '504px'}, 300);
      $(".right-wrapper .item-page").css('display', 'block');
      $('.moduletable-menu li ul').hide();
      $('.scroller__bar-wrapper').show();
      flag=1;
   }
   else{
      $(".right-wrapper").animate({width: '50px'}, 300);
      $(".right-wrapper .item-page").css('display', 'none');
      $('.moduletable-menu li ul').show();
      $('.scroller__bar-wrapper').hide();
      flag=0;
   }
  });

});
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2014, 18:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

hhh,
без флагов бы как нибудь ?!
строки 66 - 82 -
замените на

$(".moduletable-menu li li a").click(function(){
         $(".right-click2").click()
  });

или можно значения флага поменять на противоположное
в трёх местах этих строк
0 1 0 на 1 0 1

неучитывается что нажимается ссылка
нет нигде отмены всплытия и действия по умолчанию.

event.preventDefault()
event.stopPropagation()
Ответить с цитированием
  #3 (permalink)  
Старый 05.11.2014, 20:20
hhh hhh вне форума
Профессор
Отправить личное сообщение для hhh Посмотреть профиль Найти все сообщения от hhh
 
Регистрация: 19.11.2013
Сообщений: 150

Спасибо. Буду пробовать Читал книгу понял этот preventDefault, но из-за недостатка практики не вспомнил.
Без флагов пока не знаю как. Но есть есть цель этот код сократить как можно меньше. У меня таких много сайтов к которым намечено вернуться в будущем.

Последний раз редактировалось hhh, 05.11.2014 в 20:23.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение активных пунктов многоуровневого меню на jQuery Letto Элементы интерфейса 2 04.12.2013 15:30
Как выбрать li элементы из первого уровня меню TicTac Общие вопросы Javascript 9 02.05.2013 21:05
jQuery UI Datepicker включается только со второго клика по инпуту, нужно с первого adelante jQuery 3 07.07.2012 14:53
Подсветка выделенного элемента меню ajax-сайта crayday AJAX и COMET 0 11.05.2012 12:25
Проблема с аккордионом и меню Tie ExtJS 3 01.09.2011 14:36