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.

Reply via email to