【问题标题】:Jquery disable link on pseudo element in bootstrap dropdownJquery禁用引导下拉列表中伪元素上的链接
【发布时间】:2018-03-17 21:21:02
【问题描述】:

在引导 (4.0) 中,我使用以下代码将链接 href 添加到下拉菜单元素:

HTML:

<ul id="menu-header-menu" class="nav navbar-nav">
    <li id="menu-item" class="nav-item">
        <a href="http://localhost/wordpress/" class="nav-link dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Home</a>
    </li>
</ul>

CSS:

.dropdown-toggle::after {
    content: "\f107";
    font-family: fontawesome;
    position: absolute;
    border: none;
    height: 50px;
    width: 50px;
    line-height: 53px;    
    top: 2px;
    right: 0;
    z-index: 9;
    text-align: center;
    border-left: 1px solid #bdbdbd
}

jquery:

$('.dropdown-toggle').click(function() { 
    var location = $(this).attr('href'); window.location.href = location; return false; 
});

但问题是,我无法切换下拉菜单。因为当我点击 .dropdown-toggle::after 时,它会转到链接。

我想要,如果我点击 .dropdown-toggle 转到 url。但如果我点击 .dropdown-toggle::after 就不要去了。只需切换下拉菜单。

【问题讨论】:

  • 能否发布您正在使用的 HTML 以及您的 Bootstrap 版本?
  • 已编辑帖子!提前谢谢你。

标签: jquery toggle dropdown


【解决方案1】:

在这种情况下,仔细检查 Bootstrap 文档,我认为最好的情况是使用记录在 here 中的输入组。

我在 Codepen 中得到了与您的非常相似的东西,尽管您可能想要更改填充。也不需要 ::after / FA。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/js/bootstrap.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0/css/bootstrap.css" rel="stylesheet" />

<ul id="menu-header-menu" class="nav navbar-nav">
  <li id="menu-item" class="nav-item">
    <div class="btn-group">
      <a href="#" class="btn btn-link pr-0">Action</a>
      <button type="button" class="btn btn-link dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      <span class="sr-only">Toggle Dropdown</span>
    </button>
      <div class="dropdown-menu">
        <a class="dropdown-item" href="#">Action</a>
        <a class="dropdown-item" href="#">Another action</a>
        <a class="dropdown-item" href="#">Something else here</a>
        <div class="dropdown-divider"></div>
        <a class="dropdown-item" href="#">Separated link</a>
      </div>
    </div>
  </li>
</ul>

【讨论】:

  • 无论如何我相信你需要一个额外的 div 用于下拉菜单本身。您如何将其添加到 WP?
  • 我需要一个新的 walker 类 :) 我可以在所有下拉项附近放置一个新的 div。但是我必须为切换下拉菜单设置什么点击功能?例如,我在 附近添加了 我必须做什么?
  • 不需要函数。只需确保包含 Bootstrap javascript 文件即可。
猜你喜欢
  • 2021-03-08
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-23
  • 2015-10-17
  • 2016-12-12
相关资源
最近更新 更多