I've had a minor success now that it's defined inside document.ready, one of the pages is now working, however my main nav bar ( <ul><li> <em>Name</em>Text </li> <li> etc etc</ul> ) isn't working.
You can see the page at: http://www.ispycreativity.com/concept07.htm the relevant jQuery is at http://www.ispycreativity.com/scripts/global.js Thanks for the significant time you guys have committed to helping me =). ricardobeat wrote: > > > You are defining your watchLinks function outside document.ready, so > it's not available. it should look like this (pay attention to the > closing brackets/parenthesis, you had extra ones at the end): > > $(document).ready(function(){ > ///////////////////////////// CHECK URL > var pageHash = window.location.hash.substr(1); > > if( pageHash == "" ) openPage("home"); > else openPage(pageHash); > > watchLinks(); //Watch the links > pictureIt('graphics/bg/ploughedfield.jpg'); > > ////////////////////////////// WATCH LINKS > function watchLinks() { > $(document).click(function(e) { > var $linkClicked = $(e.target); > if( $linkClicked.is("a") ) { > var youWantToGoTo = $linkClicked.attr('href').slice(0,-4); > openPage(youWantToGoTo); // Open destination > window.location.hash = youWantToGoTo; // Set the url # > return false; > }; > }); > }; > > }); > > cheers, > - ricardo > > On Jan 11, 10:01 am, BlueStunt <l...@lsdon.com> wrote: >> This still doesn't work, I've stripped it down to this: >> >> $(document).click(function(e) >> { >> var $linkClicked = $(e.target); >> if( $linkClicked.is("a") ) >> { >> alert("Hi"); >> return false; >> } >> }); >> >> but nothing registers, the return false doesn't work and neither is there >> an >> alert. >> >> Here's the relevant jquery in full: >> >> $(document).ready(function() >> { >> ////////////////////////////////////////////////////////////////// >> CHECK >> URL >> var pageHash = window.location.hash.substr(1); >> >> if( pageHash == "" ) // If empty open HOME >> { >> openPage("home"); >> } >> >> else >> { >> openPage(pageHash); // Else open relevant >> } >> >> watchLinks(); // Watch the links >> pictureIt('graphics/bg/ploughedfield.jpg'); >> >> }); >> >> //////////////////////////////////////////////////////////////////// >> //////////////////////////////////////////////////////////////////// >> WATCH >> LINKS >> function watchLinks() >> { >> $(document).click(function(e) >> { >> var $linkClicked = $(e.target); >> if( $linkClicked.is("a") ) >> { >> var youWantToGoTo = >> $linkClicked.attr('href').substr(0,$(this).attr('href').length-4); // >> Determine destination >> openPage(youWantToGoTo); // Open destination >> window.location.hash = youWantToGoTo; // Set the url # >> return false; >> } >> }); >> }; >> }); >> }; >> >> >> >> malsup wrote: >> >> >> I've read through both the link you suggested >> >> >> andhttp://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips... >> >> but I can't understand how I would make event delegation work for me. >> >> >> This is what I attempted: >> >> >> function watchLinks() >> >> { >> >> $("a").click(function(e) >> >> { >> >> var linkClicked = $(e.target); >> >> if( linkClicked.is("a")) >> >> { >> >> var youWantToGoTo = >> >> linkClicked.attr('href').substr(0,$(this).attr('href').length-4); // >> >> Determine destination >> >> openPage(youWantToGoTo); // Open destination >> >> window.location.hash = youWantToGoTo; // Set the url # >> >> return false; >> >> } >> >> }); >> >> }; >> >> > Don't bind the anchors, bind the document: >> >> > $(document).click(function(e) { >> > var $el = $(e.target); >> > if ($el.is('a')) { >> > var href = $el.attr('href'); >> > var hash = href.substr(0,href.length-4); >> > openPage(hash); >> > window.location.hash = hash; >> > return false; >> > } >> > }); >> >> -- >> View this message in >> context:http://www.nabble.com/.load%28%29-callback-tp21389522s27240p21398423.... >> Sent from the jQuery General Discussion mailing list archive at >> Nabble.com. > > -- View this message in context: http://www.nabble.com/.load%28%29-callback-tp21389522s27240p21423890.html Sent from the jQuery General Discussion mailing list archive at Nabble.com.