2012-12-07 81 views
1

下午所有,jQuery的優化代碼型態

我的jQuery代碼2塊有很多重複...我想知道的,如果有以行和/或性能方面簡化它的任何方式。

的2塊如下:

$("#intro").css('min-height',$(window).height()-88); 
$("#trabalhos").css('min-height',$(window).height()-88); 
$("#fotografia").css('min-height',$(window).height()-88); 
$("#cv").css('min-height',$(window).height()-88); 
$("#contactos").css('min-height',$(window).height()-88); 

和:

$('.portfolio').click(function(e){ e.preventDefault();$('html,body').animate({scrollTop: $('#portfolio').offset().top-88},'slow'); }); 
$('.cv').click(function(e){ e.preventDefault();$('html,body').animate({scrollTop: $('#cv').offset().top-88},'slow'); }); 
$('.trabalhos').click(function(e){ e.preventDefault();$('html,body').animate({scrollTop: $('#trabalhos').offset().top-88},'slow'); }); 
$('.fotografia').click(function(e){ e.preventDefault();$('html,body').animate({scrollTop: $('#fotografia').offset().top-88},'slow'); }); 
$('.contactos').click(function(e){ e.preventDefault();$('html,body').animate({scrollTop: $('#contactos').offset().top-88},'slow'); }); 

回答

4

您可以使用多個選擇

$("#intro,#trabalhos,#fotografia,#cv,#contactos").css('min-height', $(window).height() - 88); 

$('.portfolio,.cv,.trabalhos,.fotografia,.contractos').click(function(e) { 
    e.preventDefault(); 
    $('html,body').animate({ 
     scrollTop: $('#'+$(this).attr('class')).offset().top - 88; // <-- this assuming you only have one class 
    }, 'slow'); 
}); 
+0

沒有工作......但我刪除了最後一個;現在是完美的! :)謝謝 –

6

您可以將選擇到一個單一的聲明,他們要用逗號分隔。

$('#intro, #trabalhos, #fotografia, #cv, #contactos').css('min-height',$(window).height()-88); 
+0

所以更簡單的結合你的代碼!我忘了我可以做到這一點!謝謝。 –

4

爲哪個ID是你使用相同的CSS給他們一個共同的類 然後

 $(".common_class").css('min-height',$(window).height()-88); 


    is it OK. 
+0

大聲笑!有時我們真的非常愚蠢!感謝您指出:) –

+0

@Afonso:最受歡迎。 –

+0

@Afonso戈麥斯:直到你還沒有接受答案? –