你能否像禁用按钮一样禁用Bootstrap 2.0中的选项卡?
你能否像禁用按钮一样禁用Bootstrap 2.0中的选项卡?
data-toggle="tab"
属性,因为它是使用live/delegate事件连接的。有关此功能的讨论,请参见https://github.com/twitter/bootstrap/issues/2764。禁用状态
对于任何导航组件(选项卡、胶囊或列表),添加.disabled以获得灰色链接和无悬停效果。但是,链接仍然可点击,除非您删除href属性。或者,您可以实现自定义JavaScript来阻止这些点击。
我添加了以下Javascript代码来防止单击禁用链接:
$(".nav-tabs a[data-toggle=tab]").on("click", function(e) {
if ($(this).hasClass("disabled")) {
e.preventDefault();
return false;
}
});
li
元素添加 disabled
类,然后添加你指定的 JavaScript 代码,但你要检查的条件是:if ($(this).parent().hasClass('disabled')) {..}
。 - mellis481li
是改变用户视觉效果的元素,因此应该具有disabled
类。 - Jared我认为最好的解决方案是使用CSS禁用它。 你可以定义一个新的类并在其上关闭鼠标事件:
.disabledTab{
pointer-events: none;
}
然后将此类分配给所需的li元素:
<li class="disabled disabledTab"><a href="#"> .... </a></li>
你也可以使用jQuery添加/删除类。例如,要禁用所有选项卡:
$("ul.nav li").removeClass('active').addClass('disabledTab');
这里有一个示例:jsFiddle
.nav-tabs li.disabled a {
pointer-events: none;
}
另外,我正在使用以下解决方案:
Also, I'm using following solution:$('a[data-toggle="tab"]').on('click', function(){
if ($(this).parent('li').hasClass('disabled')) {
return false;
};
});
现在,您只需将class“disabled”添加到父级li中,选项卡即不起作用并变为灰色。
对于我的使用情况,最好的解决方案是结合以下答案:
disabled
类$(".nav .disabled>a").on("click", function(e) {
e.preventDefault();
return false;
});
注意:即使您删除了data-toggle,此处的JS代码仍然很重要,否则它会通过添加#your-id
值来更新您的URL,这是不推荐的,因为您的选项卡已禁用,因此不应被访问。
虽然这是一道老问题,但它仍帮助我找到了正确的方向。 我所采用的方法是在li上添加disabled类,然后将下面的代码添加到我的Javascript文件中。
$('.nav-tabs li.disabled > a[data-toggle=tab]').on('click', function(e) {
e.stopImmediatePropagation();
});
<style type="text/css">
/* Over the pointer-events:none, set the cursor to not-allowed.
On this way you will have a more user friendly cursor. */
.disabledTab {
cursor: not-allowed;
}
/* Clicks are not permitted and change the opacity. */
li.disabledTab > a[data-toggle="tab"] {
pointer-events: none;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
opacity: .65;
}
</style>
这是一个HTML模板。唯一需要做的就是将类设置为您喜欢的列表项。
<ul class="nav nav-tabs tab-header">
<li>
<a href="#tab-info" data-toggle="tab">Info</a>
</li>
<li class="disabledTab">
<a href="#tab-date" data-toggle="tab">Date</a>
</li>
<li>
<a href="#tab-photo" data-toggle="tab">Photo</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab-info">Info</div>
<div class="tab-pane active" id="tab-date">Date</div>
<div class="tab-pane active" id="tab-photo">Photo</div>
</div>
<li class="" id="groups"><a data-toggle="tab" class="navuserli" href="#groups" aria-expanded="false">Groups</a></li>
$('#groups').css('pointer-events', 'none')
class="disabled"
就像预期一样工作了。.nav.nav-tabs > li.disabled { pointer-events: none; a { color: silver; } }
- effe