जब मैंने बूटस्ट्रैप 3 टैब / नेवबार के टैब में बदलाव किया और शाब्दिक रूप से सभी सुझाव दिए गए थे कि कोई कार्य नहीं किया था, तो मैंने एक अवास्तविक राशि खर्च की ।
इस बारे में कैसे जाना है?
मेटा-एडिट: टिप्पणी देखें
जब मैंने बूटस्ट्रैप 3 टैब / नेवबार के टैब में बदलाव किया और शाब्दिक रूप से सभी सुझाव दिए गए थे कि कोई कार्य नहीं किया था, तो मैंने एक अवास्तविक राशि खर्च की ।
इस बारे में कैसे जाना है?
मेटा-एडिट: टिप्पणी देखें
जवाबों:
एरिक सॉपे जानता है कि यह कैसे करना है
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href") // activated tab
alert(target);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet"/>
<ul id="myTab" class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">Home</a></li>
<li class=""><a href="#profile" data-toggle="tab">Profile</a></li>
</ul>
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="home">
home tab!
</div>
<div class="tab-pane fade" id="profile">
profile tab!
</div>
</div>
$(document).on('shown.bs.tab', function (e) { console.log('ae'); });
target
एक वैश्विक चर के रूप में घोषित किया और ऊपर बताए अनुसार मान को सौंपा। जब मैं पहली बार पृष्ठ को लोड करता हूं, तो मुझे लक्ष्य के मान (अलर्ट) को अपरिभाषित के रूप में प्राप्त होता है। लेकिन, जब मैं टैब बदलता हूं और उस मान को लक्ष्य पर असाइन करता हूं, तो मुझे कोई अलर्ट नहीं मिल रहा है। त्रुटि संदेश भी नहीं। उस पाश से बाहर लाने के लिए मुझे क्या करना चाहिए? मैंने document.ready फ़ंक्शन के बाहर चर घोषित किया है।
$(function () {
$('#myTab a:last').tab('show');
});
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href");
if ((target == '#messages')) {
alert('ok');
} else {
alert('not ok');
}
});
समस्या यह है कि attr ('href') कभी खाली नहीं होती है।
या #id = "#some वैल्यू" की तुलना करने के लिए और फिर ajax को कॉल करें।
@ गेर्बन की पोस्ट की बदौलत पता चला कि दो इवेंट्स show.bs.tab हैं (टैब दिखाए जाने से पहले) और दिखाया गया है। d.t (टैब दिखाए जाने के बाद) डॉक्स में बताया गया है - बूटस्ट्रैप टैब का उपयोग
एक अतिरिक्त समाधान यदि हम केवल एक विशिष्ट टैब में रुचि रखते हैं, और हो सकता है कि एक फ़ंक्शन में एक और ब्लॉक जोड़ने के बिना अलग-अलग फ़ंक्शन जोड़ते हैं, तो एक href चयनकर्ता का उपयोग करना है (शायद अतिरिक्त चयनकर्ताओं के साथ यदि आवश्यक हो)
$("a[href='#tab_target_id']").on('shown.bs.tab', function(e) {
console.log('shown - after the tab has been shown');
});
// or even this one if we want the earlier event
$("a[href='#tab_target_id']").on('show.bs.tab', function(e) {
console.log('show - before the new tab has been shown');
});
Mosh Feu उत्तर में जोड़ने के लिए, यदि मेरे मामले में मक्खी की तरह बनाए गए टैब, तो आप निम्न कोड का उपयोग करेंगे
$(document).on('shown.bs.tab', 'a[data-toggle="tab"]', function (e) {
var tab = $(e.target);
var contentId = tab.attr("href");
//This check if the tab is active
if (tab.parent().hasClass('active')) {
console.log('the tab with the content id ' + contentId + ' is visible');
} else {
console.log('the tab with the content id ' + contentId + ' is NOT visible');
}
});
मुझे उम्मीद है इससे किसी को सहायता मिलेगी
इसने मेरे लिए काम किया।
$('.nav-pills > li > a').click( function() {
$('.nav-pills > li.active').removeClass('active');
$(this).parent().addClass('active');
} );
मैं दूसरे दृष्टिकोण का उपयोग करता हूं।
बस सब खोजने की कोशिश a
जहां id
कुछ से शुरू होता है -स्ट्रिंग ।
जे एस
$('a[id^=v-photos-tab]').click(function () {
alert("Handler for .click() called.");
});
एचटीएमएल
<a class="nav-item nav-link active show" id="v-photos-tab-3a623245-7dc7-4a22-90d0-62705ad0c62b" data-toggle="pill" href="#v-photos-3a623245-7dc7-4a22-90d0-62705ad0c62b" role="tab" aria-controls="v-requestbase-photos" aria-selected="true"><span>Cool photos</span></a>