2012-12-07 53 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戈麦斯:直到你还没有接受答案? –