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 Swedberg
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 preferencehere (and I'm also just guessing what you're asking) but I don't see 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 Used FINDin 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