2013-06-20 2 views
-4

У меня есть следующая страница: http://pastebin.com/sJAN1jkk, которая содержит раскрывающееся меню навигации, состоящее из нескольких неупорядоченных списков.Как сделать ссылки на меню доступными

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

У меня есть ощущение, что это где-то в javascript, но не будучи экспертом, я не понимаю, почему.

Любая помощь была бы принята с благодарностью.

Если я пропустил какую-либо соответствующую/необходимую информацию, сообщите мне, и я обновлю вопрос.

---- Редактировать ----

Меню HTML:

<div class="rotaWrapper"> 
    <div id="ddRotas" class="wrapper-dropdown-rotas" tabindex="1"> 
     <span id="lblRotasMenu">Rotas and absences</span> 
     <ul class="dropdown"> 
      <li><a id="hypRotas" href="Rotas.aspx">Rotas</a></li> 
      <li><a id="hypAbsence" href="Absence.aspx">Absences</a></li> 
      <li><a id="hypTraining" href="Training.aspx">Training</a></li> 
     </ul> 
    </div> 
</div> 

Javascript:

<script type="text/javascript"> 

      function DropDown(el) { 
       this.dd = el; 
       this.initEvents(); 
      } 
      DropDown.prototype = { 
       initEvents : function() { 
        var obj = this; 

        obj.dd.on('click', function(event){ 
         $(this).toggleClass('active'); 
         return false; 
        }); 
       }, 
      } 

      $(function() { 

       var ddRotas = new DropDown($('#ddRotas')); 
       var ddWages = new DropDown($('#ddWages')); 
       var ddMessages = new DropDown($('#ddMessages')); 
       var ddDocs = new DropDown($('#ddDocs')); 
       var ddAdmin = new DropDown($('#ddAdmin')); 

       $(document).click(function() { 
        // all dropdowns 
        $('.wrapper-dropdown-rotas').removeClass('active'); 
        $('.wrapper-dropdown-wages').removeClass('active'); 
        $('.wrapper-dropdown-docs').removeClass('active'); 
        $('.wrapper-dropdown-messages').removeClass('active'); 
        $('.wrapper-dropdown-admin').removeClass('active'); 
       }); 

      }); 

     </script> 
+2

Пожалуйста, добавьте содержательный код и описание проблемы. Не просто свяжите с pastebin. Публикация [Краткосрочный, самосохраненный, правильный пример (SSCCE)] (http://www.sscce.org/) , который демонстрирует вашу проблему, поможет вам получить более качественные ответы. Для получения дополнительной информации см. [Что-то на моем веб-сайте не работает. Могу ли я просто вставить ссылку на ?] (Http://meta.stackexchange.com/questions/125997/) Спасибо! – j08691

ответ

1

Я думаю, что это может быть ваша проблема:

obj.dd.on('click', function(event){ 
    $(this).toggleClass('active'); 
    return false; 
}); 

Вы захватываете все события кликов для своих выпадающего списка, а затем возвращается false. Это останавливает событие щелчка при стрельбе.

+0

Я вижу, меняя его на true, останавливает выпадающее меню. – ogarvey

+1

В вашем селекторе вам нужно более конкретно. Вам нужно изменить способ работы кода, чтобы событие клика срабатывало только при нажатии на элемент меню (я предполагаю, что ' Rotas и отсутствие' в этом случае), а не один из элементов в вашем списке. –

+0

Большое спасибо, я посмотрю, как только я вернусь перед ПК. – ogarvey