[ Rodja_ki @ 20.03.2014. 08:04 ] @
Pozdrav ljudi, imam problemcic sa tabovima :) U aplikaciji imam nekoliko "glavnih" tabova koji sadrze nekoliko tabova unutar sebe. E sad problem je kada submitujem nesto sa 'unutrasnjeg' taba ne mogu nikako da se vratim na taj tab. Na strani na koju se ode imam redirect u koji mi se nalazi url gde ce se vratiti. E sad kada dodam npr
nekastrana.php?parametar=1#tabs-2 on me odvede na taj tab ali kada dodam drugi #tab ne uradi nista. ostaje na prvom 'glavnom' tabu. To sam pokusao na ovaj nacin
nekastrana.php?parametar=1#tabs-2&tabsunder-2 i na taj nacin dobijem tabs-1 otvoren. Evo primer.
Fiddle
[ Nikola Poša @ 20.03.2014. 13:09 ] @
Ako baciš pogled na API dokumentaciju, videćeš da postoji opcija active, putem kojeg možeš da podesiš (zero-based) indeks taba kojeg želiš da bude aktivan. E sad, sama ta logika nakon submit-a formi bi se odvijala tako nekako kako si objasnio, možda eventualno da te indekse tabova šalješ kroz neka skrivena polja "tab", koja bi bila u svakoj od tih formi, sa adekvatnim vrednostima naravno. Uglavnom, ideja je da pri submit-u na server side pošalješ informaciju (indekse tabova) sa kog tab-a odnosno tabova je poslat request, to posle proslediš view-u, i dinamički ispišeš vrednost active opcije za te tabs() pozive.
[ Rodja_ki @ 25.03.2014. 07:18 ] @
Uradio sam na ovaj nacin. Imam tri taba i 8 podtabova. Pojavljuje mi se bag kada je drugi i 8 podtab u pitanju. Svi ostali rade kako treba, ali kada treba da je na 8. tabu vrati na 2 ne na 8. a kada je na 2 postavi na 1. Samo ta dva taba. Kroz komentare sam opisao stanje u funkciji.
Code:

(function () {
    if (window.location.hash) {
        var hash = window.location.hash;
        var hashArray = hash.split("&");
        var prvi = hashArray[0];
        prvi = prvi.match(/\d+$/)[0];

        if (hashArray.length == 2) {
            var drugi = hashArray[1];
            drugi = drugi.match(/\d+$/)[0];
            drugi = drugi - 10; // format #tabovi-12 npr ybog toga je -10
            if (drugi == 8) {
                $("#tabovi").tabs('option', 'active', 8);
                console.log($("#tabovi").tabs('option', 'active')); // = 2
            };
            if (drugi == 2) {
                console.log(drugi); // drugi = 2 
                $("#tabovi").tabs('option', 'active', 2);
                console.log($("#tabovi").tabs('option', 'active')); // = 0 
            };
            $("#tabovi").tabs('option', 'active', drugi);
        };

        prvi = prvi - 1;
        $("#tabs").tabs('option', 'active', prvi);

        //console.log(hashArray.length);
    };

})();