2012-08-09 10 views
13

का उपयोग करके टैब स्विच बनाने के लिए कैसे मैं निम्नलिखित कोड है: http://jsfiddle.net/h6rQ2/2/एक "अगले" बटन है कि जावा स्क्रिप्ट और ट्विटर बूटस्ट्रैप

मैं एक बुनियादी रूप बनाने के लिए एचटीएमएल उपयोग कर रहा हूँ। इस फ़ॉर्म में दो खंड हैं - प्रत्येक अनुभाग एक टैब के भीतर निहित है (ट्विटर बूटस्ट्रैप के साथ बनाए गए टैब)।

मैं "अगला" बटन कैसे बना सकता हूं जो पहले टैब से दूसरे टैब पर स्विच करता है? जब मैं इसे अभी करने की कोशिश करता हूं, तो यह केवल फॉर्म सबमिट करता है। क्या ट्विटर बूटस्ट्रैप पहले से ही एक फ़ंक्शन प्रदान करता है जो आपको बाहरी बटन के माध्यम से टैब स्विच करने देता है? यदि हां, तो आप इसका उपयोग कैसे करते हैं?

+0

क्या आप की कोशिश की है की तरह लिंक जोड़ सकते हैं? [यह] (http://twitter.github.com/bootstrap/javascript.html#tabs) आपको जेएस का उपयोग करके एक विशिष्ट टैब का चयन करने का तरीका दिखाता है। अब आपको यह पता लगाने की जरूरत है कि वर्तमान तत्व के अगले भाई को कैसे प्राप्त किया जाए। – sachleen

+0

मैंने एक बटन बनाया जो निम्न फ़ंक्शन को कॉल करता है: $ (फ़ंक्शन अगला() {$ ('# tab_bar a: last')। टैब ('शो');})। मुझे दो समस्याएं मिलती हैं: (1) जब मैं पहली बार पृष्ठ लोड करता हूं, दूसरा टैब पहले से सक्रिय होता है जबकि मैं चाहता हूं कि पहला टैब सक्रिय हो (2) जब मैं बटन दबाता हूं, तो यह दूसरे टैब पर स्विच करने से पहले फॉर्म सबमिट करता है । मैं इस पर नया हूं इसलिए मुझे यकीन है कि मैं कुछ महत्वपूर्ण – goelv

+0

को अनदेखा कर रहा हूं। मुझे लगता है कि ट्विटर बूटस्ट्रैप के साथ दिए गए कार्यों को मुझे जो कुछ चाहिए उसे पूरा करने के लिए उपयोग किया जा सकता है। लेकिन मुझे यकीन नहीं है कि उनका उपयोग कैसे करें – goelv

उत्तर

28

को देखते हुए उन बटन:

<div class="btn-group"> 
    <button class="btn" id="prevtab" type="button">Prev</button> 
    <button class="btn" id="nexttab" type="button">Next</button> 
</div> 

आप इस आवश्यकता होगी JS:

var $tabs = $('.tabbable li'); 

$('#prevtab').on('click', function() { 
    $tabs.filter('.active').prev('li').find('a[data-toggle="tab"]').tab('show'); 
}); 

$('#nexttab').on('click', function() { 
    $tabs.filter('.active').next('li').find('a[data-toggle="tab"]').tab('show'); 
}); 

Working demo (jsfiddle)

+0

क्या कोई निश्चित तरीका है कि मुझे जावास्क्रिप्ट जोड़ना चाहिए? मैंने आपके जावास्क्रिप्ट कोड को एक अलग फ़ाइल में कॉपी-पेस्ट किया है, और उस फ़ाइल को मेरे एचटीएमएल के सिर में बुलाया है। यह अभी भी काम नहीं कर रहा है, और मैं अपनी रस्सी के अंत में हूं। – goelv

+0

ठीक है, कुछ व्यापक परीक्षण के बाद, मुझे पूरा यकीन है कि मैं आपकी जावास्क्रिप्ट को ठीक से लोड नहीं कर रहा हूं। इस प्रकार मैंने वर्तमान में इसे किया है: आपके कोड के साथ बस "custom.js" फ़ाइल में कॉपी-पेस्ट किया गया है। क्या मुझसे कुछ गलत हो रही है? – goelv

+1

@goelv आपको ऐसा करने के लिए तैयार डोम के लिए * प्रतीक्षा * की आवश्यकता है। डेमो काम कर रहा है क्योंकि jsfiddle इसे डिफ़ॉल्ट रूप से करता है। [इस डॉक्टर] की जांच करें (http://api.jquery.com/jQuery/#jQuery3), और मेरे कोड को एक फ़ंक्शन के अंदर रखें जिसे डोम तैयार होने के बाद ही बुलाया जाएगा। – Sherbrow

0

यह चक्रीय (अंतिम टैब के पहले चला जाता है बनाने के लिए, पहला टैब पिछले को जाता है), यहां मेरा कोड है:

function previousVin(){ 
    var previousElement = $('#myTab li').filter('.active').prev('li').find('a[data-toggle="tab"]'); 
    if(previousElement.html()===undefined){ 
     $('#myTab a:last').tab('show'); 
    }else{ 
     previousElement.tab('show'); 
    } 
} 
function nextVin(){ 
    var nextElement = $('#myTab li').filter('.active').next('li').find('a[data-toggle="tab"]'); 
    if(nextElement.html()===undefined){ 
     $('#myTab a:first').tab('show'); 
    }else{ 
     nextElement.tab('show'); 
    } 
} 
-1

बूटस्ट्रैप 3 के लिए

$('a[data-toggle^="tab"]').click(function(){ 
    var data = $(this).attr("href"); 
    $('a[data-toggle^="tab"]').parent("li").removeClass("active"); 
    $('li a[href^="'+data+'"]').parent("li").addClass("active"); 
    $('.tab-pane').removeClass("active"); 
    $(data).addClass("active"); 
}) 

आप इन कहीं भी

<a href="#tabname2" data-toggle="tab">Next</a> 
<a href="#tabname1" data-toggle="tab">Previous</a> 
संबंधित मुद्दे