2011-01-24 4 views
0

есть ли способ сделать мой код более плавным и эффективным?Есть ли способ сделать мой код jquery более эффективным?

var headerH = $("#header").height(); 
var winH = $(window).height(); 
var newH = winH - headerH; 
$("#wrap").css({ 'height' : newH + 'px' }); 
$(window).resize(function() { 
    var _headerH = $("#header").height(); 
    var _winH = $(window).height(); 
    var _newH = _winH - _headerH; 
    $("#wrap").css({ 'height' : _newH + 'px' }); 
}); 
//--Expand Panel 
$(".open-menu").live('click', function(){ 
    $("#wrap").css({ 'height' : newH + 'px' }); 
    $(".mini-menu").fadeOut(500); 
    $("#headerCompany").animate({ 
     marginLeft: '+=142' 
    }, 650); 
    $("#avatar_box").fadeIn(650); 
    $("#pinboard").fadeIn(550); 
    $("div#centerHeader").slideDown("slow"); 
    $("#toggle-pinboard a").removeClass("open-menu").addClass("close-menu"); 
    return false; 
}); 
// Collapse Panel 
$(".close-menu").live('click', function(){ 
    $("#wrap").css({ 'height' : newH + 'px' }); 
    $("#avatar_box").fadeOut(550); 
    $("#pinboard").fadeOut(550); 
    $("#headerCompany").animate({ 
     marginLeft: '-=142' 
    }, 650); 
    $("div#centerHeader").slideUp(750).delay(300); 
    $.post('resources/ajax/ajax.php', { 
     action: 'mini_menu' 
    }, function(menu){ 
     $("#mini-menu").hide().html(menu).addClass("mini-menu").fadeIn(1500); 
    }); 
    $("#toggle-pinboard a").removeClass("close-menu").addClass("open-menu"); 
    return false; 
}); 
+2

Если вы не нашли ответа здесь, публичная бета-версия для HTTP: // Просмотр Кода. stackexchange.com/ начинается через пару дней. – Andrew

+0

Если вам не нужно беспокоиться о том, что 'close-menu' или' open-menu' записываются на страницу за пределами начальной загрузки страницы, то отмените использование 'live()'. – Josh

+0

@Josh - В некотором смысле я делаю это, потому что, когда вы нажимаете на кнопку, которая переключает открытие/закрытие, я удаляю и добавляю классы, которые разрешают переключение. – Eli

ответ

0

Другой способ избавиться от «живой», чтобы сделать что-то вроде этого:

$("#toggle-pinboard a").click(function() { 
    if ($(this).hasClass('open-menu')) { 
     // close menu code 
    } 
    else { 
     // open menu code 
    } 
} 
Смежные вопросы