मेरे पास एक पृष्ठ है जिसमें jQuery टैब का एक सेट है। सभी टैब एक ही लक्ष्य div पर इंगित करते हैं, लेकिन इसे AJAX के माध्यम से अलग-अलग सामग्री के साथ लोड करते हैं। जब मैं प्रारंभिक पूर्ण पृष्ठ लोड करता हूं तो मुझे विभिन्न कारकों के आधार पर सक्रिय टैब को अलग-अलग सेट करने की आवश्यकता होती है। लक्ष्य div में सामग्री पहले से ही इस प्रारंभिक लोड के लिए सर्वर पर सेट है, इसलिए मुझे टैब पर क्लिक करने की आवश्यकता नहीं है, मुझे बस सही टैब को 'चयनित' पर सेट करने की आवश्यकता है। मैंने प्रासंगिक "ली" एचटीएमएल तत्व की कक्षा को "यूई-टैब-चयनित" में सेट करने का प्रयास किया है। इसका प्रारंभिक वांछित प्रभाव है, लेकिन पृष्ठ लोड होने के बाद एक और टैब चुनने पर प्रीइलेक्टेड एक बंद नहीं होता है, जिससे दो टैब चुने जाते हैं।विशिष्ट टैब का चयन करने वाले jQuery टैब
तो, क्या किसी को टैब को पूर्व निर्धारित करने के लिए वैकल्पिक तरीका पता है (इसे क्लिक किए बिना), या अजीब "यूई-टैब-चयनित" व्यवहार का समाधान जो मैं देख रहा हूं।
धन्यवाद।
<script type="text/javascript">
$(function() {
$("#panelTabs").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html("Couldn't load this tab. We'll try to fix this as soon as possible.");
}
}
});
$("#panelTabs").tabs({
select: function(event, ui) {
getPage('hps.aspx?cmd=zz_' + ui.tab.id, 'panelA');
}
});
});
</script>
और सी # टुकड़ा है कि यूएल बनाता है:
StringBuilder tabsLiteral = new StringBuilder();
tabsLiteral.Append("<ul>");
foreach (KeyValuePair<string, Tab> kvp in tabs)
{
tabsLiteral.Append("<li>");
// Note - the kvp.Value.URI determines what should happen when the Tab is clicked
tabsLiteral.Append("<a id=\"" + kvp.Value.URI + "\" href=\"#panelTabs\">" + kvp.Value.Caption + "</a>");
tabsLiteral.Append("</li>");
}
tabsLiteral.Append("</ul>");
_panelTabs.Controls.Add(new LiteralControl(tabsLiteral.ToString()));
HtmlGenericControl ctl = new HtmlGenericControl();
StringBuilder html = new StringBuilder();
html.Append("<script type=\"text/javascript\">");
html.Append("$(\"#panelTabs\").tabs({selected: 2});");
html.Append("</script>");
ctl.InnerHtml = html.ToString();
_panelTabs.Controls.Add(ctl);
एक और संस्करण:
StringBuilder tabsLiteral = new StringBuilder();
tabsLiteral.Append("<ul>");
foreach (KeyValuePair<string, Tab> kvp in tabs)
{
string active = "";
if (currentTabCaption == kvp.Value.Caption)
{
//active = " class=\"ui-tabs-selected\"";
}
tabsLiteral.Append("<li" + active + ">");
// Note - the kvp.Value.URI determines what should happen when the Tab is clicked
tabsLiteral.Append("<a id=\"" + kvp.Value.URI + "\" href=\"#panelTabs\">" + kvp.Value.Caption + "</a>");
tabsLiteral.Append("</li>");
}
tabsLiteral.Append("</ul>");
_panelTabs.Controls.Add(new LiteralControl(tabsLiteral.ToString()));
HtmlGenericControl ctl = new HtmlGenericControl();
StringBuilder html = new StringBuilder();
html.Append("<script type=\"text/javascript\">");
//html.Append("$(\"#panelTabs\").tabs('option','selected', 2);");
html.Append(@"$(function() {
alert('initialising tabs');
$(""#panelTabs"").tabs({
ajaxOptions: {
error: function(xhr, status, index, anchor) {
$(anchor.hash).html(""Couldn't load this tab. We'll try to fix this as soon as possible."");
}
},
select: function(event, ui) {
getPage('hps.aspx?cmd=zz_' + ui.tab.id, 'panelA');
}
});
});");
html.Append("$(\"#panelTabs\").tabs({selected: 2});");
html.Append("</script>");
ctl.InnerHtml = html.ToString();
//_panelTabs.Controls.Add(ctl);
Page.Controls.Add(ctl);
आपको एक कोड नमूना कार्रवाई में यह दिखा है? – spinon
ध्यान दें कि यह आपके बाद क्या है, लेकिन यहां सी # खंड है जो ली बनाता है: यदि (currentTabCaption == kvp.Value.Caption) {active = "class = \" ui-tabs-चयनित \ " "; } tabsLiteral.Append ("