Tu suggerivi di sostituire totalmente la mia funzione con la tua?
Non tutto lo script ma solo quella parte che riguarda il click. Chiaramente $('.container').hide(); dovrai lasciarlo.
Forse non ti funziona perché sullo script che ho postato manca la chiusura della parentesi tonda; sul tuo l'hai riportata in una riga a capo. O forse potrebbe esserci qualche altro problema.
Ad ogni modo ti posto un esempio completo e funzionante da copiaincollare così com'è:
codice:
<!DOCTYPE HTML>
<html>
<head>
<title>Esempio</title>
<meta charset="utf-8">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.container').hide();
$( "h2.trigger" ).click(function() {
$(this).toggleClass("active")
.next().slideToggle(500);
});
});
</script>
<style type="text/css">
.active{
background: yellow;
}
</style>
</head>
<body>
<h2 class='trigger'><a href='#'>primo</a></h2>
<div class='container'>contenitore1</div>
<h2 class='trigger'><a href='#'>due</a></h2>
<div class='container'>contenitore2</div>
<h2 class='trigger'><a href='#'>tre</a></h2>
<div class='container'>contenitore3</div>
</body>
</html>
Giusto per verificare il funzionamento, ho impostato uno sfondo giallo per la classe .active.