【问题标题】:How to make my menu links clickable如何使我的菜单链接可点击
【发布时间】:2013-06-20 23:49:30
【问题描述】:

我有以下页面: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>

【问题讨论】:

标签: javascript jquery html


【解决方案1】:

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

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

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

【讨论】:

  • 我明白了,将其更改为 true 会阻止下拉菜单下拉。
  • 您需要在选择器中更具体。您需要更改代码的工作方式,以便单击事件仅在您单击菜单项时触发(在这种情况下我假设为&lt;span id="lblRotasMenu"&gt;Rotas and absences&lt;/span&gt;),而不是列表中的任何一项。
  • 非常感谢,等我回到电脑前去看看。
猜你喜欢
  • 2015-10-06
  • 1970-01-01
  • 2013-08-21
  • 2016-12-12
  • 1970-01-01
  • 1970-01-01
  • 2015-05-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多