On Feb 1, 2009, at 3:06 AM, Pedram wrote:


I have another  tiny question
 $("Ul li a"), $("ul a"), $("a",$("ul"))
which one has the great performance !!?



I would go with either $('ul a') or $('a', 'ul'), but $('ul a') seems more readable to me, as it follows the CSS syntax.

Since it's not possible in a valid DOM to have an A that is a descendant of a UL but not a descendant of an LI, the LI is superfluous. No need to do an extra getElementsByTagName there.

Also, if you're using a contextual selector, you don't need to wrap the context in its own jQuery object -- $("a",$("ul")).


--Karl



On Feb 1, 12:02 am, Pedram <pedram...@gmail.com> wrote:
I just had some Doubt , the performance is great

On Jan 31, 11:54 am, Karl Swedberg <k...@englishrules.com> wrote:

Hi Pedram,

I agree with Nic. Especially if you're only dealing with 4 elements,
binding directly on them seems like the most sensible solution.

Are you noticing performance problems? You shouldn't be seeing any,
with scripts this basic. In any case, there are a couple selector
optimizations you could implement, if necessary. Something like this:

var $navBarLinks = $('#your-nav-bar-id a');

$navBarLinks.click(function() {
   $navBarLinks.removeClass('active');
   $(this).addClass('active');

});

--Karl

____________
Karl Swedbergwww.englishrules.comwww.learningjquery.com

On Jan 31, 2009, at 2:36 PM, Pedram wrote:

I'm looking to improve the performance , which of these 2 codes has
the best performance.

On Jan 30, 1:04 am, Nic Luciano <adaptive...@gmail.com> wrote:
What exactly are you trying to do, what is the issue? Maybe just
preference
here (and I'm also just guessing what you're asking) but I don't
see a
reason not to put the events on the elements themselves

$("ul li a").click(function() {
        $
(this).parent().parent().find(".active").removeClass("active");
        $(this).addClass("active");
    });

On Fri, Jan 30, 2009 at 3:07 AM, Pedram <pedram...@gmail.com> wrote:

Dear Karl ,
I know You are Expert in these Issues do you have any idea for me
Thanks

On Jan 29, 5:44 pm, Pedram <pedram...@gmail.com> wrote:
Hi Folks ,
  I have some links in my Navigation bar such as below , I Used
FIND
in my code , does anyone has any better solution for me ,
  I also used Event Delegation in the system .

<ul>
  <li><a href="#" class="active>a</a></li>
  <li><a href="#">b</a></li>
  <li><a href="#">c</a></li>
  <li><a href="#">d</a></li>
</ul>

  $("ul").bind("click",function(e){
      var clicked=$(e.target);
      $(this).find("a.active").removeClass("active");
      clicked.addClass("active");
  });

Reply via email to