Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает конструкция IF-ELSE (https://javascript.ru/forum/misc/59663-ne-rabotaet-konstrukciya-if-else.html)

Влад Громов 21.11.2015 16:14

Не работает конструкция IF-ELSE
 
Здравствуйте, помоги пожалуйста, ни как не могу понять почему не работает скрипт ниже:

var menu = $('#menu_nav');
var adapMenu = $('#adap-menu');

if (window.innerWidth <= 600)  {
  if (menu.hasClass('show')) {
    adapMenu.click(function(){
        menu.removeClass('show');
    }
  } else {
    adapMenu.click(function(){
        menu.addClass('show');
      }
    );
  }
}

рони 21.11.2015 16:25

Влад Громов,
в клике условие а ненаоборот

Влад Громов 21.11.2015 16:28

Всё исправил, но функция срабатывает только один раз, то есть даёт класс show, но после повторного нажатия не удаляет, можете помочь с этим?

ruslan_mart 21.11.2015 16:29

Делать адаптивное меню через jQuery - верх руко*опия просто. :)

var menu = $('#menu_nav');
var adapMenu = $('#adap-menu');


adapMenu.click(function(){
        menu.toggleClass('show', window.innerWidth > 600);
});

laimas 21.11.2015 16:31

Как писал рони + .toggleClass()

Влад Громов 21.11.2015 16:33

function dropmenu() {
  var menu = $('#menu_nav');
  var adapMenu = $('#adap-menu');

  if (window.innerWidth <= 600)  {
    if (menu.hasClass('show')) {
          menu.removeClass('show');
    } else {
          menu.addClass('show');  
    }
  }
}


<li id="adap-menu" onclick="return dropmenu();"><a title="">Меню</a></li>


Вот всё работает

ruslan_mart 21.11.2015 16:34

Влад Громов, да не нужна там эта конструкция из условий, вот:

menu.toggleClass('show', window.innerWidth > 600);

laimas 21.11.2015 16:35

Вам же Ruslan_xDD прямым текстом написал как проще.

Влад Громов 21.11.2015 16:36

Ruslan_xDD,
А как сделать водругому адаптивное меню? раз вы говорите что через jquery это рукожопие

Влад Громов 21.11.2015 16:39

var menu = $('#menu_nav');
var adapMenu = $('#adap-menu');


adapMenu.click(function(){
        menu.toggleClass('show', window.innerWidth > 600);
});


так не работает ваша конструкция

Влад Громов 21.11.2015 16:40

111

laimas 21.11.2015 16:49

Цитата:

Сообщение от Влад Громов
так не работает ваша конструкция

Уверены? Ведь сработает только раз, чтобы удалить класс нужно изменить разрешение экрана:

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
.red {
    border: 1px solid #f00;
}
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script> 
$(function() {
    //зачем объект в переменную, а затем на него обработчик?
    //если надо для дальнейшего использования, то можно кешировать сразу 
    var o = $('#my').click(function() {
        o.toggleClass('red', window.innerWidth >= 600)
    })
});
</script>     
</head> 
<body>
<div id="my">GO</div>
</body> 
</html>

Влад Громов 21.11.2015 17:18

Возможно меня немного не поняли, я хочу сделать как у бутстрепа, на экранах от 600 и меньше, вместо навбара появляется кнопка меню, нажимаем на неё и раскрывается меню, нажимаем ещё раз и оно закрывается

рони 21.11.2015 17:39

Влад Громов,
https://codyhouse.co/gem/responsive-sidebar-navigation/

ruslan_mart 21.11.2015 18:08

Цитата:

Сообщение от Влад Громов
А как сделать водругому адаптивное меню? раз вы говорите что через jquery это рукожопие

@media all and (max-width: 600px) {

     /*Стили для экрана <= 600*/

     #adap-menu {


     }
}

laimas 21.11.2015 18:54

Цитата:

Сообщение от Влад Громов
я хочу сделать как у бутстрепа

Ну так подключайте бустрап.

Влад Громов 21.11.2015 20:09

Ruslan_xDD,
Не получится без использование js сделать открытие и закрытие меню, jquery используется как раз для этого, а не для адаптивности.
laimas,
Зачем мне весь бутстреп? когда мне только нужен функцианал менюшки как у бутстрепа, иногда легче написать чем вырезать откуданибудь

laimas 21.11.2015 20:33

Цитата:

Сообщение от Влад Громов
когда мне только нужен функцианал менюшки как у бутстрепа

Да какой же у вас функционал, так попытка. )
Почитайте для интересу:
http://shpargalkablog.ru/2010/12/shirina-saita-css.html
http://habrahabr.ru/post/119127/


Часовой пояс GMT +3, время: 14:49.