2017-01-20 3 views
0

Друзей,Самозакрывающегося .js переключен меню

Я использую .js навигацию реализацию меню переключения из следующей ссылки: click here.

var theToggle = document.getElementById('toggle'); 
// based on Todd Motto functions 
// http://toddmotto.com/labs/reusable-js/ 

// hasClass 
function hasClass(elem, className) { 
    return new RegExp(' ' + className + ' ').test(' ' + elem.className + ''); 
} 
// addClass 
function addClass(elem, className) { 
    if (!hasClass(elem, className)) { 
     elem.className += ' ' + className; 
    } 
} 
// removeClass 
function removeClass(elem, className) { 
    var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' '; 
    if (hasClass(elem, className)) { 
     while (newClass.indexOf(' ' + className + ' ') >= 0) { 
      newClass = newClass.replace(' ' + className + ' ', ' '); 
     } 
     elem.className = newClass.replace(/^\s+|\s+$/g, ''); 
    } 
} 
// toggleClass 
function toggleClass(elem, className) { 
    var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, " ") + ' '; 
    if (hasClass(elem, className)) { 
     while (newClass.indexOf(" " + className + " ") >= 0) { 
      newClass = newClass.replace(" " + className + " " , " "); 
     } 
     elem.className = newClass.replace(/^\s+|\s+$/g, ''); 
    } else { 
     elem.className += ' ' + className; 
    } 
} 

theToggle.onclick = function() { 
    toggleClass(this, 'on'); 
    return false; 
} 

Я хочу, чтобы изменить код здесь, так что окно меню со ссылками автоматически закрывается после нажатия кнопки меню. Наверное, мне понадобится дополнительная функция .onclick. Какие-либо предложения?

Cheers.

ответ

0

Добавить прослушиватель событий, который запускает функцию toggleClass() после нажатия любого пункта меню.

var menuLinks = document.querySelectorAll('.link'); 

for (i=0; i<menuLinks.length; i++) { 
    menuLinks[i].addEventListener('click', function(){ 
    toggleClass(theToggle, 'on'); 
    }); 
} 
+0

Кажется, это правильное решение. Благодарю. – user2963789

0

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

var list = document.getElementsByTagName("li"); 
for (i = 0; i < list.length; i++) { 
    list[i].onclick = function() { 
    toggleClass(theToggle, 'on'); 
    return false; 
    } 
}