les onglets jQuery sélectionnant l'onglet spécifique

J'ai une page contenant un ensemble d'onglets jQuery. Tous les onglets point à la même cible div, mais de le charger avec un contenu différent via ajax. Lorsque j'exécute l'intégrale initiale de chargement de la page j'ai besoin de l'onglet actif différemment en fonction de divers facteurs. Le contenu de la cible de div est déjà défini sur le serveur pour cette première charge, je n'ai pas besoin de cliquer sur l'onglet, j'ai juste besoin de régler correctement l'onglet "sélectionnées". J'ai essayé le réglage de la classe de la "li" élément html "ui-tabs-sélectionné". Cela a l'initiale de l'effet désiré, mais une fois le chargement de la page, puis sur sélectionner un autre onglet de la présélectionnés on ne s'éteint pas, laissant deux onglets sélectionnés.

Donc, quelqu'un sait-il un autre moyen de présélectionner un onglet (sans l'amenant à être cliqué), ou une solution de l'étrange "ui-tabs-sélectionné" comportement que je vois.

Grâce.

<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>

Et le C# fragment qui construit l'UL:

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);

Une autre version:

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);
Avez-vous un exemple de code montrant en action?
Remarque assurez-vous si c'est ce que vous êtes après, mais ici, c'est le C# fragment qui construit le li: si (currentTabCaption == kvp.De la valeur.La légende) { active = " class=\"ui-tabs-selected\""; } tabsLiteral.Append("<li" + active + ">"); // Notez - le kvp.De la valeur.URI détermine ce qui doit se passer lorsque l'Onglet est cliqué tabsLiteral.Append("<a id=\"" + kvp.De la valeur.URI + "\" href=\"#panelTabs\">" + kvp.De la valeur.Légende + "</a>"); tabsLiteral.Append("</li>");

OriginalL'auteur DEH | 2010-07-01