Search code examples
javascriptjqueryperformanceprocessing-efficiency

nav button click change style efficiency


My current code is too messy. Could you please help make it more efficient.

function buttons(){
    $('.notclicked').click(function(){
        $('.leftmenu').addClass('leftclicked');
        $('.mainwrap').addClass('mainclicked');
        $(this).removeClass('notclicked');
        $(this).addClass('clicked');
        $('.clicked').click(function(){
            $('.leftmenu').removeClass('leftclicked');
            $('.mainwrap').removeClass('mainclicked');
            $(this).removeClass('clicked');
            $(this).addClass('notclicked');
            buttons();
        });
        buttons();
   });
};
buttons();

As seen here. (http://quinnkeaveney.com/recondite/brian/index.php)


Solution

  • You can use

    $(document).on('click', selector, function() {
      // your function
    }
    

    to bind clicks to selectors that may not have loaded yet.