Hi, Mike!

Something not directly related to your problem, but maybe helpful
nonetheless...

you can chain a lot of these calls to make them run faster. As it is
written now, you are forcing jQ to repeat a few of the searches
several times...

On Jul 27, 1:54 am, mcraig <[EMAIL PROTECTED]> wrote:
>                 $("#switchkey p").corner("bottom 6px;");
...
>                 $("#switchkey p").click(function() {
>                         $("#switchcontent").animate({height: 'toggle', 
> opacity: 'toggle'},
> 500, function() {

Can be:

$("#switchkey p").corner("bottom 6px;")
  .$("#switchkey p").click(function() {...


> $("#switchkey p").html('Close Site Panel');
> $("#switchkey p").corner("bottom 6px;");
> $("#switchkey p").html('Site Panel');
> $("#switchkey p").corner("bottom 6px;");

Those can/should all be chained together:

$("#switchkey p").html('Close Site Panel')
.corner("bottom 6px;")
.html('Site Panel')
.corner("bottom 6px;");

Doing so should speed up that portion of code more than 50%.


>                         $("#logincontent").animate({height: 'toggle', 
> opacity: 'toggle'},
> 500, function() {
>                                                                               
>   if ($("#logincontent").is(':visible')) {

Inside the anonymous function 'this' refers to #logincontent, so you
should use this instead of $('#logincontent'), to avoid doing yet
another search for an item you already have.

$("#loginkey p").html('Close Login');
>                                                                               
>           $("#loginkey p").corner("bottom 6px;");

You can chain these.


$("#loginkey p").html('Login');
>                                                                               
>           $("#loginkey p").corner("bottom 6px;");

And these, too.

Chaining does not only exist to make code prettier, but to save a lot
of internal work. Every time you do $('#foo'), the whole DOM has to be
searched to find the element, which takes so-called "linear
time" (meaning that the time it takes grows in direct proportion to
the length of your DOM), whereas if you chain calls you perform the
search only once and re-use the found element. The speed savings are
in direct relation to how many calls you can effectively chain. e.g.
if you can chain 3 calls then you've effectively cut the search time
to 1/3rd of what it would be when not chaining the calls. Failing to
use chaining (or caching a $(...) result) inside of a loop can be a
big performance hit.

Good luck solving your IE problem! i'm so glad i don't own Windows, so
i don't have to put up with that browser! :D

Reply via email to