从外部按钮打开引导下拉菜单

Posted

技术标签:

【中文标题】从外部按钮打开引导下拉菜单【英文标题】:Opening a bootstrap dropdown menu from an external button 【发布时间】:2017-09-21 06:54:21 【问题描述】:

我正在从事一项工作,我的雇主想要一个使用 Bootstrap 3 的响应式网站,但他们不希望在他们现有的桌面网站上进行任何视觉上的改变(显然不理想,但我无法控制)。

目前我正在处理导航部分。我遇到的问题是我有一个登录表单(此时为占位符)位于导航中的菜单下拉列表内。在移动设备上,表单在下拉列表中保留,但在固定顶部标题栏标题“登录”中添加了一个单独的图标按钮,该按钮位于汉堡菜单附近,即使在主导航关闭时也可见。下面是我的codepen:

http://codepen.io/v_for_vinsanity/pen/YVGZdb

我正在寻找一种在单击登录图标按钮时打开登录下拉菜单的方法。这是登录下拉菜单的代码:

<li class="dropdown login-dropdown">
              <a href="#" class="dropdown-toggle login-btn" data-toggle="dropdown" aria-expanded="false">Login <span class="caret"></span></a>
              <ul role="menu" class="dropdown-menu dropdown-menu-right">
                <li>
           <img src="http://placehold.it/350x300" >
                </li>
              </ul>
            </li>

使用 jquery,我能够将焦点转移到登录下拉菜单(您将在 codepen 中看到),但我无法将“open”类添加到 li class="dropdown login-dropdown”和/或将登录锚标记上的 aria-expanded 属性更改为“true”。我尝试了许多不同的方法,但您会在下面找到我目前拥有的:

$(function()
    $('.login-icon-btn').click(function()
        $('.nav li.login-dropdown a').trigger('click');
        $('.nav li.login-dropdown').addClass('open');
        $('.login-btn').attr("aria-expanded","true");
    );
);

非常感谢您提供任何帮助!

【问题讨论】:

【参考方案1】:

这是一个选择

   $(function()
        $('.login-icon-btn').click(function()
            $('.navbar-toggle').click();
            $('.login-btn').click();
            return false;
        );
    );

【讨论】:

谢谢@Richi Zee - 您的解决方案效果很好,唯一的问题是我需要使用 if/else 语句来确定滑出导航是否已经打开,这将决定是否运行 $( '.navbar-toggle').click();.但是你帮了我很大的忙,非常感谢!

以上是关于从外部按钮打开引导下拉菜单的主要内容,如果未能解决你的问题,请参考以下文章

单击按钮时引导下拉菜单未打开

在内部单击时保持 Bootstrap 下拉菜单打开

引导下拉菜单外部链接

从打开的 Bootstrap 3 下拉菜单切换到不同的下拉菜单需要额外点击移动设备

引导下拉菜单按钮在单击按钮以及单击屏幕时更改

引导按钮下拉菜单中的引导日期选择器