2010-08-06 22 views
7

क्या चयनित टैब को फिर से लोड करने का कोई तरीका है, मुझे पता है कि .load() फ़ंक्शन है। लेकिन यह एक टैब इंडेक्स चाहता है और मुझे चयनित टैब आईडी को पकड़ने का कोई तरीका नहीं दिख रहा है।Jquery UI - चयनित टैब पुनः लोड करें?

+0

तो अपने प्रश्न वास्तव में कैसे चयनित टैब के सूचकांक प्राप्त करने के लिए किया जाता है? –

+0

इससे मेरी समस्या हल हो जाएगी, हां। – Renari

उत्तर

24

अद्यतन: jQuery 1.9 में, selected विकल्प का नाम बदलकर active कर दिया गया है। attomman's answer.

वर्तमान में चयनित इंडेक्स प्राप्त करने के लिए, tabs('option','selected') फ़ंक्शन का उपयोग करें।

जैसे, यदि आप एक बटन #button है (और #tabs तत्व टैब में किया जाता है) जहां सूचकांक प्राप्त करना चाहते हैं, निम्न कार्य करें: http://jsfiddle.net/sVgAT/

:

$("#button").click(function() { 
    var current_index = $("#tabs").tabs("option","selected"); 
}); 

यहाँ एक डेमो है


प्रश्न jQuery 1.8 में, शीर्षक से संकेत दिया जवाब देने और पहले के लिए, आपको करना होगा:

var current_index = $("#tabs").tabs("option","selected"); 
$("#tabs").tabs('load',current_index); 

और jQuery 1.9 में और बाद में, आप क्या करेंगे:

var current_index = $("#tabs").tabs("option","active"); 
$("#tabs").tabs('load',current_index); 
+0

धन्यवाद, यह वही था जो मैं खोज रहा था। – Renari

+0

इस समाधान के साथ समस्या यह है कि यह दो चयनित टैब दो बार (सर्वर पर दो हिट) पुनः लोड करता है। –

+2

दुर्भाग्यवश jQuery UI के नवीनतम संस्करण के रूप में यह अब काम नहीं करता है। नीचे दिए गए एटोमैन के उत्तर के अनुसार, आपको '" चयनित "' '" सक्रिय "के साथ बदलना होगा। – aroth

1

मैं इस काम करने के लिए पाने में कामयाब रहे लेकिन अब यह दो बार पहले टैब को लोड करता है जब यह सक्रिय नहीं है। अगर किसी के पास इस पर कोई और सलाह है तो इसकी बहुत सराहना की जाएगी। console showing a cancelled request to the server

आप ऊपर देख सकते हैं कि अनुरोध सर्वर पर दो बार किया गया है लेकिन पहला अनुरोध सफल है इसलिए यह दूसरे को रद्द कर देता है। यकीन नहीं है कि यह एक मुद्दा है या नहीं ..? लेकिन मैं कंसोल में दिखाई दे रहा से आश्वस्त नहीं किया जा रहा

constructor: (@element) -> 
    @tabIndex = 0 
    @tabs = @element.find('#tabs') 
    @tabs.tabs 
     spinner: "Loading.." 
     cache: false 
     ajaxOptions: 
     cache: false 
     error: (xhr, status, index, anchor) -> 
      $(anchor.hash).html "Couldn't load this tab. We'll try to fix this as soon as possible." 

    #add custom load to make sure they always reload even the current tab when clicked 
    @element.find('ul li a').click (e) => 
     if @tabIndex is @tabs.tabs('option', 'selected') 
     @tabs.tabs 'load', @tabs.tabs('option', 'selected') 
     @tabIndex = @tabs.tabs('option', 'selected') 
+0

यह एक अलग सवाल होना चाहिए ताकि लोग ठीक से जवाब दे सकें :) –

7

Simen सही जवाब था, लेकिन यह अब JQuery यूआई 1,9

http://jqueryui.com/upgrade-guide/1.9/#deprecated-selected-option-renamed-to-active

के बाद से बहिष्कृत कर दिया गया अब आप का उपयोग 'सक्रिय' के बजाय की 'चुना'

तो कोड दिखेगा की तरह:

var current_index = $("#tabs").tabs("option","active"); $("#tabs").tabs('load',current_index);

2

यदि कोई और इस प्रश्न पर ठोकर खाता है और - मेरे जैसे - jQuery EasyUI द्वारा टैब का उपयोग कर रहा है, तो सिमेन का उत्तर उपरोक्त काम नहीं करेगा।

var tab = $('#tt').tabs('getSelected'); 
tab.panel('refresh'); 

कहाँ tt अपने टैब समूह कुकीज़ के लिए के माध्यम से

<div id="tt" class="easyui-tabs"> 
+0

यह नए संस्करण के लिए काम करता है आसान यूआई, धन्यवाद – JacobChan

0

डाउनलोड इस प्लगइन बनाया id है:

http://plugins.jquery.com/cookie/

सम्मिलित बल्कि, एक टैब, उपयोग ताज़ा करने के लिए आपके पृष्ठ पर jQuery कुकी

<script src="jquery.cookie.js"></script> 

और इस जोड़ें:

$(".tabs").click(function() { 
    //getter , get the active tab 
    var active = $("#tabs").tabs("option", "active"); 
    $.cookie("tabs_selected", active); 
}); 

var cookieValue = $.cookie("tabs_selected"); 
// setter, set the active tab stocked 
$("#tabs").tabs("option", "active",cookieValue); 
संबंधित मुद्दे