Ik gebruik jQuery en jQuery-ui om tabs te maken. Deze tabs stellen alle mogelijke talen voor in mijn cms. De talen die op dat moment direct te gebruiken zijn, daarvan zijn de tabs ook aangezet. Voorbeeldje:
Er zijn in het systeem drie talen beschikbaar. Een artikel heeft twee talen. Het artikel wijzigen kent dus drie tabs (voor elke taal een), waarvan er twee aan staan (klikbaar) en eentje niet (niet klikbaar). Via een methode kan je talen toevoegen (tabs aanzetten) of verwijderen (tabs uitzetten).
Nu zit ik met het volgende probleem:
Wanneer de disabled array op regel #3 van de js file gevuld is met een aantal indices, lukt het niet meer om deze aan te zetten. Dit hoort gewoon wel te werken volgens mij (de documentatie zegt niets over tabs aanzetten die bij initialisatie uit staan).
Ook heb ik een topic in de jquery-ui gegooid, maar daar reageert men niet op mijn vraag
Heeft iemand een idee hoe ik dit kan oplossen (desnoods met een workaround)? Ik probeer vanalles, maar mijn js kennis laat me nu echt in de steek.
Er zijn in het systeem drie talen beschikbaar. Een artikel heeft twee talen. Het artikel wijzigen kent dus drie tabs (voor elke taal een), waarvan er twee aan staan (klikbaar) en eentje niet (niet klikbaar). Via een methode kan je talen toevoegen (tabs aanzetten) of verwijderen (tabs uitzetten).
Nu zit ik met het volgende probleem:
HTML:
Ik activeer dit geheel met de volgende javascript:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <div id="blog-tabs"> <ul> <li> <a href="#tab-nl" class="tab-link">Nederlands</a> <img src="/media/blog/delete.png" class="tab-switch" id="0"> </li> <li> <a href="#tab-en" class="tab-link">English</a> <img src="/media/blog/delete.png" class="tab-switch" id="1"> </li> </ul> <div id="tab-nl" class="blog-tab"> <!-- Hier het nederlandse deel --> </div> <div id="tab-en" class="blog-tab"> <!-- Hier het engelse deel --> </div> </div> |
JavaScript:
Dit werkt prima. Het probleem ligt in het in eerste instantie disablen van bepaalde tabs. Als alles aan staat, werkt het gewoon. Maar ik wil de gebruiker laten bepalen welke talen er zijn. Daarom het systeem van tabs aan- en uitzetten.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
| $(document).ready( function(){ $("#blog-tabs").tabs({ disabled: [], selected: 0 }); //Add click event to enable / disable tab $( '.tab-switch' ).click( function(){ var tabs = $( '#blog-tabs' ); var index = $(this).attr('id'); var disabled = tabs.tabs( 'option', 'disabled' ); var status = true; for( tab in disabled ){ if( disabled[tab] == index ){ status = false; break; } } if( status == false) $( '#blog-tabs' ).tabs( 'enable', index ); else $( '#blog-tabs' ).tabs( 'disable', index ); }); $( '#blog-tabs' ).bind( 'tabsenable', function( event, ui ){ $(this).tabs( 'select', ui.index ); alert( 'Geklikt & aangezet!' ); }); $( '#blog-tabs' ).bind( 'tabsdisable', function( event, ui ){ alert( 'Geklinkt & uitgezet!' ); }); }); |
Wanneer de disabled array op regel #3 van de js file gevuld is met een aantal indices, lukt het niet meer om deze aan te zetten. Dit hoort gewoon wel te werken volgens mij (de documentatie zegt niets over tabs aanzetten die bij initialisatie uit staan).
Ook heb ik een topic in de jquery-ui gegooid, maar daar reageert men niet op mijn vraag
Heeft iemand een idee hoe ik dit kan oplossen (desnoods met een workaround)? Ik probeer vanalles, maar mijn js kennis laat me nu echt in de steek.