Hallo.

Ik heb een mooie menu die uit kan klappen.
maar dat gaat alleen als er op het groene pijltje wordt gedrukt die in <span></span> komt.
Maar ik wil ook dat er als op de naam wordt geklikt dat hij uitklapt. maar hoe kan ik dat doen?

menu,js
$(document).ready(function(){
	
	$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav
	
	$("ul.topnav li span").click(function() { //When trigger is clicked...
		
		//Following events are applied to the subnav itself (moving subnav up and down)
		$(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click

		$(this).parent().hover(function() {
		}, function(){	
			$(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
		});

		//Following events are applied to the trigger (Hover events for the trigger)
		}).hover(function() { 
			$(this).addClass("subhover"); //On hover over, add class "subhover"
		}, function(){	//On Hover Out
			$(this).removeClass("subhover"); //On hover out, remove class "subhover"
	});

});


index.php
      <div id="menu2">
		<ul class="topnav">
		<?php 
		$sqlm = "SELECT id,naam,link FROM menu ORDER BY sorteren";
		$querym = mysql_query($sqlm));
		if(mysql_num_rows($querym) == 0){
			echo '<li><a>Menu niet gevonden</a></li>';
		}else{
			while($row = mysql_fetch_assoc($querym)){
				$sqlsm = "SELECT naam,link FROM menu_sub WHERE menu='".$row['id']."' ORDER BY sorteren";
				$querysm = mysql_query($sqlsm));
				if(mysql_num_rows($querysm) > 0){
					echo '<li><a>'.$row['naam'].'</a>';
					echo '<ul class="subnav">';
					while($row2 = mysql_fetch_assoc($querysm)){
						echo '<li><a href="'.$url.$row2['link'].'">'.$row2['naam'].'</a></li>';
					}
					echo '</ul>';
				}else{
					echo '<li><a href="'.$url.$row['link'].'">'.$row['naam'].'</a>';
				}
				echo '</li>';
			}
		}
		if(isset($_SESSION['admin_id'])){
			echo '<li><a href="'.$url.'admin"><b>Admin</b></a></li>';
			echo '<li><a href="'.$url.'login/logout"><i>Uitloggen</i></a></li>';
		}
		?>
		</ul>
	</div>
Nou kijk, wat ik je net liet zien is mijn bestaande menu, dus ik wil hem graag aanpassen.

maar ik weet niet precies hoe.

<?php
echo '<li><a>'.$row['naam'].'</a>';
?>

dat is de link als hij een submenu is. maar nu wil ik dat mensen daar ook op kunnen klikken.
hoe doe ik dat?
dan krijg je niet het uitklap menu..
zo als je ziet in menu.js
Ten eerste: zorg ervoor dat je menu ook werkt voor mensen die geen javascript gebruiken. Denk aan minder validen, mobieltjes van net niet de nieuwste generatie of mensen met extensies om javascript uit te schakelen op nieuwe websites. 5% van de mensen heeft JS uit staan. Met CSS kan je ook perfect een uitklapmenu maken, en als je wilt met CSS3 zelfs inclusief animatie.

OT: Gebruik iets als dit:


$("ul.topnav li span, ul.topnav li a").click( /* function here */);
niet alle <a>'s zij uitklapbare menus..
hoe kan ik dat het beste doen?

Reageren