带有 Twitter Bootstrap 的下拉菜单

Posted

技术标签:

【中文标题】带有 Twitter Bootstrap 的下拉菜单【英文标题】:Dropdown menu with Twitter Bootstrap 【发布时间】:2012-03-09 04:31:42 【问题描述】:

从this question 开始,我仍在为 Twitter Bootstrap 苦苦挣扎。我设法让我的导航栏出现,我正在尝试向它添加一个下拉菜单。无论我尝试什么,我实际上都无法让菜单的下拉部分正常工作!这是我的菜单截图。

如您所见,我有“帐户设置”,它应该是一个下拉菜单,但是当我单击它时,没有出现下拉选项。以下是我的代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title</title>

    <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/bootstrap.js")" type="text/javascript"></script>
    <script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
    <script type="text/javascript">
        $(document).ready(function () 
            $('.dropdown-toggle').dropdown();
        );
   </script>

    <link href="@Url.Content("~/Content/bootstrap.min.css")" rel="stylesheet" type="text/css" />

</head>
<body>
    <div class="navbar">
        <div class="navbar-inner">
            <div class="container">
                <ul class="nav">
                    <a class="brand" href="#">Present Ideas</a>
                    <li class="active"><a href="#">Home</a></li>
                    <li><a href="#">Blog</a></li>
                    <li><a href="#">About</a></li>
                    <li><a href="#">Help</a></li>
                    <li class="dropdown" id="accountmenu">
                        <a class="dropdown-toggle" data-toggle="dropdown" href="#">Account Settings<b class="caret"></b></a>
                        <ul class="dropdown-menu">
                            <li><a href="#">Login</a></li>
                            <li><a href="#">Register</a></li>
                            <li class="divider"></li>
                            <li><a href="#">Logout</a></li>
                        </ul>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    <div class="container-fluid">
        @RenderBody()
    </div>
</body>
</html>

如您所见,我引用了来自 Twitter 的下拉 Javascript 文件。我也尝试过在本地引用它,这没有任何区别。我还包含了我认为应该连接下拉菜单并调用 Twitter 的 Javascript 文件的 Javascript。

我不知道为什么这不起作用

【问题讨论】:

【参考方案1】:

请注意,在您的示例中使用此代码也是多余的:

<script type="text/javascript" language="javascript" >
    $(document).ready(function () 
          $('.dropdown-toggle').dropdown();
    ); 
 </script>

因为它什么也没做。

【讨论】:

【参考方案2】:

我看不到您在代码中包含 jQuery 的位置。您必须在所有其他脚本之前包含它才能使下拉菜单起作用。

这是来自 google CDN 的 jQuery 脚本:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>

【讨论】:

太棒了!那是一种享受。我最初确实包含了 1.5 jQuery 脚本,但似乎需要 1.7 版本。我还更改了标题中的顺序 - 我现在包括 CSS 文件,然后是脚本,因为反过来导致我的导航栏分成 2 行。感谢您的帮助。

以上是关于带有 Twitter Bootstrap 的下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

Twitter bootstrap 在下拉菜单打开时停止传播

twitter bootstrap 下拉菜单的对齐方式

twitter bootstrap 下拉菜单的 z-index 问题

html Twitter Bootstrap - 多列下拉列表

在 Twitter Bootstrap 中实现下拉菜单背后的想法是啥? [关闭]

Twitter bootstrap 下拉菜单出现在屏幕之外