Меню не открывается с первого клика
Всем привет! Вот сам сайтег - 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; } }); }); |
hhh,
без флагов бы как нибудь ?! строки 66 - 82 - замените на $(".moduletable-menu li li a").click(function(){ $(".right-click2").click() }); или можно значения флага поменять на противоположное в трёх местах этих строк 0 1 0 на 1 0 1 неучитывается что нажимается ссылка нет нигде отмены всплытия и действия по умолчанию. event.preventDefault() event.stopPropagation() |
Спасибо. Буду пробовать Читал книгу понял этот preventDefault, но из-за недостатка практики не вспомнил.:)
Без флагов пока не знаю как. Но есть есть цель этот код сократить как можно меньше. У меня таких много сайтов к которым намечено вернуться в будущем. |
Часовой пояс GMT +3, время: 18:41. |