जवाबों:
आप data-toggle="tab"
टैब से विशेषता को हटा सकते हैं क्योंकि यह लाइव / डेलीगेट ईवेंट का उपयोग करके झुका हुआ है
class="disabled"
उम्मीद के .nav.nav-tabs > li.disabled { pointer-events: none; a { color: silver; } }
2.1 के रूप में, बूटस्ट्रैप डॉक्यूमेंटेशन से http://twitter.github.com/bootstrap/compords.html#navs पर , आप कर सकते हैं।
विकलांग अवस्था
किसी भी नव घटक (टैब, पिल्स या लिस्ट) के लिए, ग्रे लिंक के लिए .Disabled और कोई हॉवर इफेक्ट्स न जोड़ें। जब तक आप href विशेषता को नहीं हटाते तब तक लिंक क्लिक करने योग्य रहेगा। वैकल्पिक रूप से, आप उन क्लिक्स को रोकने के लिए कस्टम जावास्क्रिप्ट लागू कर सकते हैं।
चर्चा जोड़ें सुविधा के लिए https://github.com/twitter/bootstrap/issues/2764 देखें ।
विकलांग लिंक पर क्लिक को रोकने के लिए मैंने निम्नलिखित जावास्क्रिप्ट जोड़ी:
$(".nav-tabs a[data-toggle=tab]").on("click", function(e) {
if ($(this).hasClass("disabled")) {
e.preventDefault();
return false;
}
});
disabled
कक्षा को li
तत्व में जोड़ना चाहिए और फिर आपके द्वारा निर्दिष्ट शर्त को छोड़कर जावास्क्रिप्ट को जोड़ना होगा जिसके खिलाफ आप जाँच कर रहे हैं if ($(this).parent().hasClass('disabled')) {..}
:।
li
है जो उपयोगकर्ता के लिए दृश्य बदलता है और फलस्वरूप disabled
कक्षा होनी चाहिए ।
मुझे लगता है कि सबसे अच्छा समाधान सीएसएस के साथ अक्षम है। आप एक नए वर्ग को परिभाषित करते हैं और आप उस पर माउस घटनाओं को बंद कर देते हैं:
.disabledTab{
pointer-events: none;
}
और फिर आप इस वर्ग को वांछित ली तत्व में असाइन करते हैं:
<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;
}
पुराना सवाल है लेकिन इसने मुझे सही दिशा में आने का इशारा किया है। जिस विधि के लिए मैं गया था वह अक्षम वर्ग को ली में जोड़ना था और फिर मेरी जावास्क्रिप्ट फ़ाइल में निम्न कोड जोड़ा गया।
$('.nav-tabs li.disabled > a[data-toggle=tab]').on('click', function(e) {
e.stopImmediatePropagation();
});
यह किसी भी लिंक को अक्षम कर देगा जहां ली के पास विकलांग वर्ग है। टोटस के जवाब के समान। लेकिन अगर उपयोगकर्ता हर बार किसी भी टैब लिंक पर क्लिक करता है और यह रिटर्न का उपयोग नहीं करता है तो यह नहीं चलेगा।
उम्मीद है कि यह किसी के लिए उपयोगी होगा!
मेरे उपयोग के लिए, सबसे अच्छा समाधान यहाँ कुछ उत्तरों का मिश्रण था, जो हैं:
disabled
कक्षा को ली में मैं अक्षम करना चाहता हूंजेएस के इस टुकड़े को जोड़ें:
`$(".nav .disabled>a").on("click", function(e) {
e.preventDefault();
return false;
});`
यदि आप चाहते हैं कि बूटस्ट्रैप आपके कोड के साथ बिल्कुल भी हस्तक्षेप न करे, तो आप डेटा-टॉगल = "टैब" विशेषता को भी हटा सकते हैं।
**** नोट **: ** जेएस कोड यहां महत्वपूर्ण है, भले ही आप डेटा-टॉगल को हटा दें क्योंकि अन्यथा, यह आपके URL को इसमें #your-id
मूल्य जोड़कर अपडेट करेगा , जिसकी अनुशंसा नहीं की गई है क्योंकि आपका टैब अक्षम है। इस प्रकार पहुँचा नहीं जाना चाहिए।
केवल सीएसएस के साथ , आप दो सीएसएस कक्षाओं को परिभाषित कर सकते हैं।
<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>
मान लीजिए, यह आपका TAB है और आप इसे अक्षम करना चाहते हैं
<li class="" id="groups"><a data-toggle="tab" class="navuserli" href="#groups" aria-expanded="false">Groups</a></li>
तो आप इस टैब को डायनामिक सीएसएस जोड़कर भी निष्क्रिय कर सकते हैं
$('#groups').css('pointer-events', 'none')
जेम्स के जवाब के अलावा:
यदि आपको लिंक उपयोग को अक्षम करने की आवश्यकता है
$('a[data-toggle="tab"]').addClass('disabled');
यदि आपको एक अक्षम लिंक को टैब लोड करने से रोकने की आवश्यकता है
$('a[data-toggle="tab"]').click(function(e){
if($this.hasClass("disabled")){
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
return false;
}
}
यदि आपको लिंक को असमर्थ करने की आवश्यकता है
$('a[data-toggle="tab"]').removeClass('disabled');
मैंने सभी सुझाए गए उत्तरों की कोशिश की, लेकिन आखिरकार मैंने इसे इस तरह से काम किया
if (false) //your condition
{
$("a[data-toggle='tab'").prop('disabled', true);
$("a[data-toggle='tab'").each(function () {
$(this).prop('data-href', $(this).attr('href')); // hold you original href
$(this).attr('href', '#'); // clear href
});
$("a[data-toggle='tab'").addClass('disabled-link');
}
else
{
$("a[data-toggle='tab'").prop('disabled', false);
$("a[data-toggle='tab'").each(function () {
$(this).attr('href', $(this).prop('data-href')); // restore original href
});
$("a[data-toggle='tab'").removeClass('disabled-link');
}
// if you want to show extra messages that the tab is disabled for a reason
$("a[data-toggle='tab'").click(function(){
alert('Tab is disabled for a reason');
});
मेरे लिए कोई भी जवाब काम नहीं करता है। निकालें data-toggle="tab"
से a
सक्रिय करने से रोकता है टैब, लेकिन यह भी कहते हैं#tabId
यूआरएल के लिए हैश। यह मेरे लिए अस्वीकार्य है। क्या अस्वीकार्य भी जावास्क्रिप्ट का उपयोग कर रहा है।
क्या काम करता है disabled
वर्ग को इसमें जोड़ा जाता है li
और href
इसकी विशेषता को हटा दिया जाता है a
।
मेरे टैब पैनलों में थे, इसलिए मैंने टैब एंकर में एक वर्ग = 'अक्षम' जोड़ दिया
जावास्क्रिप्ट में मैंने जोड़ा:
$(selector + ' a[data-toggle="tab"]').on('show.bs.tab', function (e) {
if ($(this).hasClass('disabled')){
e.preventDefault();
return false;
}
})
और कम में प्रस्तुति के लिए मैंने कहा:
.panel-heading{
display:table;
width:100%;
padding-bottom:10px;
ul.nav-tabs{
display:table-cell;
vertical-align:bottom;
a.disabled{
.text-muted;
cursor:default;
&:hover{
background-color:transparent;
border:none;
}
}
}
}
इससे बचने के लिए सबसे आसान और साफ उपाय टैग में जोड़ रहा onclick="return false;"
है a
।
<ul class="nav nav-tabs">
<li class="active">
<a href="#home" onclick="return false;">Home</a>
</li>
<li>
<a href="#ApprovalDetails" onclick="return false;">Approval Details</a>
</li>
</ul>
"cursor:no-drop;"
बस कर्सर जोड़ने से अक्षम हो जाता है, लेकिन क्लिक करने योग्य है , Url पूर्व के लिए href लक्ष्य के साथ जुड़ जाता हैpage.apsx#Home
"disabled"
लिए कक्षा जोड़ने की कोई आवश्यकता नहीं है<li>
href
आप disabled
निम्न के रूप में नव-आइटम के बच्चे को वर्ग जोड़कर बूटस्ट्रैप 4 में एक टैब को अक्षम कर सकते हैं
<li class="nav-item">
<a class="nav-link disabled" data-toggle="tab" href="#messages7" role="tab" aria-expanded="false">
<i class="icofont icofont-ui-message"></i>Home</a>
<div class="slide"></div>
</li>
यहाँ मेरा प्रयास है। टैब को अक्षम करने के लिए:
कोड:
var toggleTabs = function(state) {
disabledTabs = ['#tab2', '#tab3'];
$.each(disabledTabs, $.proxy(function(idx, tabSelector) {
tab = $(tabSelector);
if (tab.length) {
if (state) {
// Enable tab click.
$(tab).toggleClass('disabled', false);
$('a', tab).attr('data-toggle', 'tab').off('click');
} else {
// Disable tab click.
$(tab).toggleClass('disabled', true);
$('a', tab).removeAttr('data-toggle').on('click', function(e){
e.preventDefault();
});
}
}
}, this));
};
toggleTabs.call(myTabContainer, true);