使用twitter bootstrap禁用下拉菜单项

cod*_*ape 34 css twitter-bootstrap

我使用标记来使用Twitter Bootstrap显示下拉菜单.

<ul class="nav pull-right">
    <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu <b class="caret"></b></a>
        <ul class="dropdown-menu">
            <li><a href="#">Menu item 1...</a></li>
            <li class="divider"></li>
            <li><a href="#">Menu item 2...</a></li>
            <li><a href="#">Menu item 3</a></li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

我希望能够使菜单项显示为禁用,即没有悬停效果,可能还有不同的文本修饰,以使用户可以看到禁用状态.

完成此任务的最佳方法是什么?是否有一个现有的bootstrap css类我可以添加到<li>or <a>元素?

小智 75

输出禁用下拉列表的代码时,为什么不简单地使用:

<li class='disabled'>
  <a href="#">Menu</a>
</li>
Run Code Online (Sandbox Code Playgroud)

如果仍希望它出现,您可以随时添加插入符号.

更新:
添加W3Schools链接

  • +1文档向您显示此http://twitter.github.com/bootstrap/components.html#navs(在"禁用状态"下) (5认同)
  • 当我尝试这个时,链接"看起来"被禁用,但它仍然可以被点击并用于导航 (5认同)
  • 这是一个很棒的bootstrap样式,但它有一个问题,它实际上并没有阻止项目被点击.下面的@buzzy答案可以解决这个问题. (5认同)
  • 同样从文档中,如果您不希望链接可点击,那么摆脱`href`.虽然保留了`a`用于格式化. (4认同)

And*_*ich 22

您可以将自定义禁用类附加到a要禁用的菜单链接标记,只需使用preventDefault删除默认操作并定位该类,如下所示:

$(".disabled-link").click(function(event) {
  event.preventDefault();
});
Run Code Online (Sandbox Code Playgroud)

然后你可以.disabled-link用灰色背景或你喜欢的任何风格来设置所有事件的样式;

CSS

a.disabled-link,
a.disabled-link:visited ,
a.disabled-link:active,
a.disabled-link:hover {
    background-color:#d9d9d9 !important;
    color:#aaa !important;
}
Run Code Online (Sandbox Code Playgroud)

演示

  • 谢谢,这正是我所需要的.我做了一些谷歌搜索,发现了``pointer-events`` css属性.这个更新版本的jsfiddle使用指针事件而不是使用脚本来禁用该操作:http://jsfiddle.net/fABRr/2/ (2认同)

Ale*_*hin 7

我更喜欢这个(LESS):

/* Disable link */
a.disabled, 
a.disabled:visited ,
a.disabled:active,
a.disabled:hover {  
  color: #999 ;
  cursor: default;
}
.dropdown-menu {
  a.disabled, 
  a.disabled:visited ,
  a.disabled:active,
  a.disabled:hover {  
    color: #999 ;
    cursor: default;
    background-color: white;
  }
}
Run Code Online (Sandbox Code Playgroud)


Dav*_*ell 6

要禁用下拉列表,请使用:

$('.dropdown-toggle').addClass('disabled');
Run Code Online (Sandbox Code Playgroud)

要启用它:

$('.dropdown-toggle').removeClass('disabled');
Run Code Online (Sandbox Code Playgroud)


小智 6

是的,Bootstrap有一个预定义的类,你需要所有必要的样式.您可以简单地将禁用的类添加到<li>您想要的任何一个

  • 哦,等等,你说`<li>` - 这很有效.确保你没有为`<a>`添加它. (2认同)