-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>
4

1 回答 1

1

我认为这可能是你的问题:

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

您正在为下拉菜单捕获所有点击事件,然后返回false. 这会阻止点击事件触发。

于 2013-06-20T15:44:15.673 回答