2016-01-15 1 views
0

Я сделал отзывчивое меню с помощью кнопки. Я сделал функцию Javascript, которая, когда я нажимаю на кнопку, появляется меню, но я хочу, чтобы она открывалась, когда я нажимаю на меню, и когда я снова нажимаю на значок, он должен закрыть меню.Бесконечная функция через javascript

Потому что теперь, когда я нажимаю меню, он остается открытым.

Javascript

document.getElementById('menuIcon').addEventListener('click',function(){ 
    document.getElementById('rightMenu').style.display = 'block'; 
}); 
+0

использование toggleClass, как suggusted здесь, в альтернативном решении http://stackoverflow.com/a/7002070/5029052 – darkerror

+0

@darkerror Он может не захотеть использовать JQuery. – Blubberguy22

ответ

2

Чтобы сделать это, вам нужно будет переключить видимость элемента:

document.getElementById('menuIcon').addEventListener('click',function(){ 
 
     if(document.getElementById('rightMenu').style.display == 'none'){ 
 
      document.getElementById('rightMenu').style.display = 'block'; 
 
     } 
 
     else{ 
 
      document.getElementById('rightMenu').style.display = 'none'; 
 
     } 
 
    });
<button type="button" id="menuIcon">Menu Icon</button> 
 
<br> 
 
<textarea rows="2" cols="20" id="rightMenu"> 
 
This is the menu. 
 
</textarea>

+0

Да, братан, это работает, но у меня есть ошибка. Эта функция работает после второго щелчка на значке меню, любых предложений? –

+0

@ Nasco.Chachev Я добавил фрагмент кода, чтобы вы могли видеть, как он работает. Также у меня была опечатка в моем коде, которую я исправил (что, вероятно, вызвало ошибку). – Blubberguy22

+0

появилась еще одна проблема: D, она работает, но когда я открываю в режиме реагирования, а затем БЕЗ перезагрузки страницы, я меняю размер экрана, мое меню исчезает. –

1

// попробуйте этот код.

var c=0; 
document.getElementById('menuIcon').addEventListener('click',function(){ 
if(c == 0){ 
document.getElementById('rightMenu').style.display = 'block'; 
c = 1; 
    } 
else{ 
document.getElementById('rightMenu').style.display = 'none'; 
c = 0; 
    } 
}); 
+0

Пожалуйста, отформатируйте это правильно. – Blubberguy22

Смежные вопросы