thanks for the reply. On Nov 7, 10:19 am, polyrhythmic <[EMAIL PROTECTED]> wrote: > You are mixing your Model-View-Controller together with such 'links'. > href="javascript: ..." is bad jQuery practice, and never recommended. > It does not degrade in any way for users who are not running > JavaScript. Any events that have any jQuery related code should be > unobtrusively bound in $( function() { }); [jQuery's doc.ready fn] > with $(element).click( function() {}), etc. That means no inline > onClick, onMouseover, etc in your HTML.
that's what i am trying to do. before the other developer had <a href="javascript:foo()" where foo referenced jquery code. i changed it to be <a href="javascript:;" id="foo"> (if you put href="#" it makes the page skip around and changes the URL, a dead javascript link seems to work great) and tied it to a jquery onclick event. however, it still takes time for it to load and process that piece it seems. > Also, make sure your jQuery ready function is placed *after* your > jQuery script, whether it's at the bottom of the page or top. Note > that while you're doing dev, and constantly reloading, you may > experience weird issues with page refreshes and caching that will give > you "$ is not defined" errors, due to the browser loading the page in > the incorrect order. However, under normal use I and my clients have > not experienced that problem. when i do this i am using shift-reload in firefox - which is a total 100% reload off the server, no caching. i can confirm this by looking at firebug's Net tab... > jQuery can always be put safely at the bottom of the page, if the page > is designed with proper jQuery practices. However, the reason to load > jQuery last is to show your users content as fast as possible -- if > your page is completely jQuery-dependent, you may want jQuery in the > head instead so jQuery can work on the content before the users sees > and interacts with it, at the expense of longer load times. yes, that is my confusion. i bind these actions inside of document.ready which requires jquery. inside of the action, which is $ ("#foo").mouseover(function() { something }); is when it throws a "$ is not defined" - but why is it binding to the mouseover event of the "$" and able to bind to $(document).ready() then if "$" is not defined? it's confusing. > Also, I can't get your test page to throw an error. I too am using FF > 2.0.0.9 with Firebug. I don't use YSlow, but I'm not seeing errors no > matter what I click or hover. it's very odd, i can do it consistently. there is one thing - these are not placed *after* jquery.js is called. they are in document.ready() blocks though. however due to how the page is designed, reorganizing it to put jquery at the top winds up changing the point of the "experiment" ... i will try to group all of the stuff on this example to the bottom of the page even after the jquery.js and all the javascripts are referenced, and see if that helps. the problem is users have a tendency of hovering/mouseover or clicking on links before the page fully loads... and if the events are being bound at the very last part of the page load that's a lot of bad user experiences and dead links. probably a better rule of thumb is generic page elements should work without jquery/advanced code needed, but sometimes that's the whole point of certain links.