I think this will work for you. It uses jquery's data function: http://docs.jquery.com/Internals/jQuery.data

   <style type="text/css">
       .current { font-weight:bold };
   </style>

   <script type="text/javascript">
       $(function() {
$('#nav a').each(function(i,o){ // loop over each of the nav links $.data(this, 'href', o.href); // stuff the href into $.data for use later $(this).attr('href', '#').click(function(){ // replace the original href with #, add a click handler
                   // when clicked, this happens
$('#nav a').removeClass('current'); // remove the current class from all nav links $('#content').load($.data(this, 'href')); // load the content div using the href from $.data $(this).addClass('current'); // add the current class to the current nav link
                   return false;
               });
           });
       });
   </script>

<div id="nav">
   <a href="page1.html" id="page1">Page1</a>
   <a href="page2.html" id="page2">Page2</a>
   <a href="page3.html" id="page3">Page3</a>
</div>

<div id="content"></div>

- Jack

aspiring_ajaxer wrote:
Hello all, I'm new to JavaScript and jQuery although I have been
learning for a couple of weeks now but still can't wrap my head around
the programming this kind of stuff... I'll basically post my HTML
below and explain to you what I need and where I am stuck. Thank you
for reading!

Okay, So I have a basic index.html here:

<div id="navigation">

     <a class="current" id="index" title="Home" >Home</a>
     <a href="contact.html" id="contact" title="Contact">Contact</a>
     <a href="#" id="Misc" title="Misc">Misc Additional Nav Link</a>

</div><!-- </navigation> -->

<div id="content">

     This is my content

</div><!-- </content> -->

Here is what I want:

Since I am on the homepage, the link is inactive through the use of
the current class and of course without a href, however, when someone
would click on Contact, jquery would load the content and insert it
into the content div and update the navigation to show the following
inside it:

<a href="index.html"  id="index" title="Home" >Home</a>
<a class="current"  id="contact" title="Contact">Contact</a>
<a href="#" id="Misc" title="Misc">Misc Additional Nav Link</a>

Here's the script:

$(document).ready(function() {
  $('#contact').click(function() {
    $('#content').load('contact.html');
        return false;
        $('#navigation').text("Hello! What do I do here?");
  });
});

I have contemplated putting the whole navigation inside the 'text'
function with my desired changes for /each/ navigation item but my gut
feeling is that it's stupid and redundant to do so and there has to be
a better way for it...Perhaps a loop or something calling the variable
clicked on like e.currentTarget in ActionScript 3? I appreciate you
taking the time for reading my jquery adventure and hope you can help
me out.

Cheers! :-)




Reply via email to