jquery - accordion menu stops working on adding href links -
here simple accordion :
<script type="text/javascript"> $(function() { $("dt.title").click(function() { $("div.info").slideup("slow"); $(this).next("div.info:hidden").slidedown("normal" ); }); }); </script>
and works fine html :
<body> <div id="wrapper"> <div id="container"> <ul id="nav"> <dt class="title"><a href="#">about</a></dt> <dt class="title"><a href="#">work</a></dt> <div class="info"> <ul> <li><a href="#">bol</a></li> <li><a href="#">annie</a></li> <li><a href="#">imran</a></li> </ul> </div> <dt class="title"><a href="#">contact</a></dt> <dt class="title"><a href="#">links</a></dt> </ul> </div> <div id="content"> </div> </div> </body> </html>
when put href links, menu stops working. example :
<dt class="title"><a href="about.html">about</a></dt>
also tell me how can add active , hover state in menu.
you forgot return false
<script type="text/javascript"> $(function() { $("dt.title").click(function(){ $("div.info").slideup("slow"); $(this).next("div.info:hidden").slidedown("normal" ); return false; //do here }); }); </script> <body> <div id="wrapper"> <div id="container"> <ul id="nav"> <dt class="title"><a href="#">about</a></dt> <dt class="title"><a href="about.html">work</a></dt> <div class="info"> <ul> <li><a href="#">bol</a></li> <li><a href="#">annie</a></li> <li><a href="#">imran</a></li> </ul> </div> <dt class="title"><a href="#">contact</a></dt> <dt class="title"><a href="#">links</a></dt> </ul> </div> <div id="content"> </div> </div> </body>
if planning load content of about.html
in content
element use load
method. function like
$("dt.title").click(function(){ $("div.info").slidetoggle("slow"); $('#content').load($(this).find('a').attr('href')); return false; });
but not work cross-domain url.
[update]
<script type="text/javascript"> //no use var var loader = $("<div></div>").html('loading') $(document).ready(function() { $(".title").click(function(){ $(this).find("ul").slidetoggle("slow"); //do animations here //but using $.get, more animation effect //i guess $('#content').load($(this).find('a').attr('href')); return false; }); //similarly inner link $(".title ul a").click( function () { $('#content').load($(this).attr('href')); return false; }); }); </script> <body> <div id="wrapper"> <div id="container"> <ul id="nav"> <dt class="title"><a href="test.php">about</a> <ul> <li><a href="test.php">bol</a></li> <li><a href="test.php">annie khalid</a></li> <li><a href="test.php">imran</a></li> </ul> </dt> <dt class="title"><a href="test.php">work</a> <ul> <li><a href="test.php">bol</a></li> <li><a href="test.php">annie khalid</a></li> <li><a href="test.php">imran</a></li> </ul> </dt> <dt class="title"><a href="test.php">contact</a> <ul> <li><a href="test.php">bol</a></li> <li><a href="test.php">annie khalid</a></li> <li><a href="test.php">imran</a></li> </ul> </dt> <dt class="title"><a href="test.php">links</a> <ul> <li><a href="test.php">bol</a></li> <li><a href="test.php">annie khalid</a></li> <li><a href="test.php">imran</a></li> </ul> </dt> </ul> </div> <div id="content"> <p>welcome site!!!!!!!!!!!!!!!!!!!!!!!</p> <p>in tutorial taking average everyday website , enhancing jquery. adding ajax functionality content loads relevant container instead of user having navigate page. integrating awesome effects... </p> </div> </div> </body>
Comments
Post a Comment