Hai,

Ik ben bezig met een klein klantenservice / FAQ systeem. In het overzicht zie je alle categoriƫn en daaronder de dingen die erbij horen.
Wanneer een persoon op een link onder de categorie drukt wordt de URL veranderd naar bijvoorbeeld domein.nl/klantenservice#bestellingen/verzendkosten.
Als alleerst stuit ik op het probleem dat de jQuery Click functie vaak alleen werkt na het refreshen van de pagina, heel erg vreemd. Hoe kan dit?

Daarnaast zit ik met een ander probleem. Volgens mij klopt mijn logica niet helemaal. Want ik moet de pagina refreshen wil ik naar een andere categorie kunnen. De string 'boxId' moet dus direct worden aangepast, maar hoe?
Verder ben ik benieuwd of de rest van de code een beetje klopt, ben sinds een paar jaar weer met javascript bezig, haha.

Hoop dat het een beetje duidelijk is. Alvast bedankt!

        <script type="text/javascript">
		// Eerste letter van een string in hoofdletter veranderen
        function capitaliseFirstLetter(string) {
            return string.charAt(0).toUpperCase() + string.slice(1);
        }
		
		$(document).ready(function() {
			// Hash uit de URL trekken
			var hash 	= location.hash.split('#')[1];
			
			// Alleen het gedeelte voor de slash (#'bestellingen'/verzendkosten) gebruiken
			var boxId 	= hash.substring(0, hash.indexOf('/'));
				
			// Handler voor het item overzicht
			$('.itemOverviewBox ul li').click(function() {			
				$('#itemsOverview').fadeOut('fast', function() {
					$('#itemsContent ').fadeIn('fast');
					$('#itemsContent #' + boxId).show();
				});
				
				// Titel van de box vervangen
				$('#itemsContent .boxTitle').html(capitaliseFirstLetter(boxId));
			});
			
			// Terug naar het overzicht 'button'
			$('#backToOverview').click(function() {
				$('#itemsContent').fadeOut('fast', function() {
					$('#itemsContent').hide();
					$('#itemsOverview').fadeIn('fast');
				});
				
				// Even de hash leegmaken
				window.location.hash = '';
			});
	
			// Kijken of er een hash aanwezig is in de URL
			// Zoja, die FAQ pagina laten zien en anders het overzicht
			if (window.location.hash) {
				$('#itemsOverview').hide();
				$('#itemsContent ').show();
				$('#itemsContent #' + boxId).show();
			}
			
			// Handler voor het in- en uitvouwen van de FAQ items
			$('itemContentBox span').each(function() {
				var tis = $(this), state = false, answer = tis.next('p').slideUp();
				
				tis.click(function() {
					state = !state;
					answer.slideToggle(state);
					tis.toggleClass('active', state);
				});
			});
			
			$('.itemContentBox span').click(function() {                
				$(this).next('p').slideToggle(250);
                $(this).toggleClass('close');
            });
        });
        </script>
Bumpje *-*

Reageren