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 greatOn 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 selectoroptimizations 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.comOn Jan 31, 2009, at 2:36 PM, Pedram wrote:I'm looking to improve the performance , which of these 2 codes hasthe 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 justpreferencehere (and I'm also just guessing what you're asking) but I don'tsee areason 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 meThanksOn Jan 29, 5:44 pm, Pedram <pedram...@gmail.com> wrote:Hi Folks ,I have some links in my Navigation bar such as below , I UsedFINDin 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");});
No comments:
Post a Comment